8

I want to save the data submitted by the user through a form using post method and then redirect it to another html page that I have on my local machine, is there any way to achieve this using Node.js or express how do I do that?

Here is the html code for form:

<html>
<head></head>
<body>
    <form action="post_register.html" method="POST">
        university name:<input type="text" name="name" placeholder="University name"><br>
        faculty Username:<input type="text" name="facul" placeholder="faculty username"><br>
        password:<input type="password" name="password" placeholder="password"><br>
        <button >register</button>
    </form>
</body>

and here is the javascript file:

var express = require("express");
var app = express();
var bodyparser=require("body-parser");
app.use(bodyparser.urlencoded({ extended: true }));

app.listen(3000);

app.get("/domain_register",function(req,res)
{
  res.sendFile(__dirname+"/domain_register.html");
})

app.post("/post_register",function(req,res)
 {
  console.log(req.body);
  res.end("yes");
});

all I want is that after pressing submit button the data is received and the user is redirected to post_register.html file.

Billal Begueradj
  • 20,717
  • 43
  • 112
  • 130
  • In my opinion, this is something which should be accomplished from the client side where you are requesting post. Probably in `.then` block of post – Dnyanesh Jan 05 '19 at 12:18

1 Answers1

11

I tested below code in my computer and it worked. I added res.redirect('/success') line to the post request handler and created an handler for /success path:

app.get('/', function (req, res) {
  res.sendFile(__dirname + '/index.html')
})

You can change /success path with your naming choice.

App.js

var express = require('express')
var app = express()
var bodyparser = require('body-parser')
app.use(bodyparser.urlencoded({ extended: true }))

app.listen(3000)

app.get('/', function (req, res) {
  res.sendFile(__dirname + '/index.html')
})

app.get('/success', function (req, res) {
  res.sendFile(__dirname + '/success.html')
})

app.post('/register', function (req, res) {
  console.log(req.body)
  res.redirect('/success')
})

index.html

<html>
    <head></head>
    <body>
        <form method="post" action="/register">
            <input type="text" name="username">
            <input type="password" name="password">
            <input type="submit">
        </form>
    </body>
</html>

success.html

<html>
    <head></head>
    <body>
        <h1>Welcome</h1>
    </body>
</html>
Mustafa İlhan
  • 638
  • 1
  • 7
  • 18
  • You're welcome. Please select the answer as accepted solution. https://stackoverflow.com/help/someone-answers – Mustafa İlhan Jan 05 '19 at 13:27
  • Hi, the user gets directed to success.html but for some reason the url remains that same? Is that because im inside a react native WebView? – kd12345 Dec 12 '22 at 10:00