Skip to content

Post a form in Node Js

I am trying to post data from a form in node JS and then see the data in console. When i click the button I can see the data in console but the websites starts loading and it doesnt end. The loading circle doesnt stop moving.

<form method="post" action="/">
    <input type="text" name="user[name]">
    <input type="submit" value="Submit">
</form>

and this is in my server.js file

app.use(express.urlencoded({ extended: true }));
// Parse JSON bodies (as sent by API clients)
app.use(express.json());

// Access the parse results as request.body
app.post('/', function(request, response){
    console.log(request.body.user.name);
});

Answer

Your backend has to send a response, e.g. response.sendStatus(200), otherwise the frontend will wait until it timeouts.

Example:

app.use(express.urlencoded({ extended: true }));
// Parse JSON bodies (as sent by API clients)
app.use(express.json());

// Access the parse results as request.body
app.post('/', function(request, response){
    console.log(request.body.user.name);
    response.sendStatus(200);
});