Reputation: 3043
I have following code for uploading image and handling text input. But both are not working together *Images are uploading properly but I can't get text field value *
var express = require('express');
var multer = require('multer');
var mime = require('mime');
var app = express();
var bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './uploads');
},
filename: function (req, file, callback) {
callback(null, file.fieldname + '-' + Date.now() + '.' + mime.extension(file.mimetype));
}
});
var upload = multer({ storage : storage }).array('userPic');
app.get('/completeForm.html', function(req, res){
res.sendFile(__dirname + '/' + 'completeForm.html')
});
app.post("/postFormAct", function (req, res, next) {
console.log(req.body.user); // Here i getting undefined
console.log(req.body.email);// Here i getting undefined
upload(req,res,function(err) {
console.log(req.files); // Here i getting proper output and image also uploading to concern folder
});
});
app.listen(3000);
Html code given below.... please help me someone
<form method="post" action="/postFormAct" enctype="multipart/form-data">
<input type="text" name="user"><br>
<input type="text" name="email"><br>
<input type="file" name="userPic"><br>
<input type="submit" value="Submit">
</form>
Upvotes: 7
Views: 8154
Reputation: 102
Just put
console.log(req.body.user);
console.log(req.body.email);
inside your upload function. After the function may also work.
Upvotes: 3
Reputation: 1971
That's because there is no multipart/form-data
parsing middleware called before your /postFormAct
route handler.
You have two parsing middlewares set up but not one of them parse this multipart/form-data
Content-Type.
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
Multer does that, so you can access req.body.user
and req.body.email
variables in handlers following your upload
middleware.
Upvotes: 0