Hey I am trying to send the post request using express and node and here is my code.
index.html
<html>
<head>
<title>Test</title>
</head>
<body>
<form action="/form" method="POST" enctype="multipart/form-data">
<input type="text" name="imagename"></input>
<input type="submit" name="submit" value="submit"></input>
</form>
</body>
</html>
My app.js file is given below:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.post('/form', function(req, res){
res.setHeader('Content-Type', 'application/json');
setTimeout(function(){
res.send(JSON.stringify({
imagename: req.body.imagename || null
}));
}, 1000);
});
Now I should get the output as imagename: //value added in the form if true or else null. And I am always getting a null value. I tried to log the value of req.body.imagename and I am getting undefined instead of the value that I inserted in the form. Any help would be appretiated.
You have to add the body-parser
to your Express's app.
var app = express();
var bodyParser = require('body-parser');
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));
// parse application/json
app.use(bodyParser.json());
However, I've seen that you've declared your form with the enctype='multipart/formdata'
. This is usually used to make file uploads, if it's really what you want, you're going to need to use another parser for it.
You required 'body-parser'
middleware, but forgot to use it in your express
app.
app.use(bodyParser.urlencoded())
and you don't need this one
enctype="multipart/form-data"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With