我有以下代码用于上传图片和处理文字输入。但两者都没有合作 *图片上传正常,但我无法获得文字字段值*
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代码....请帮助我某人
<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>
答案 0 :(得分:2)
刚刚放
console.log(req.body.user);
console.log(req.body.email);
在你的上传功能里面:-)我觉得这个功能也可以起作用: - )
答案 1 :(得分:0)
那是因为在multipart/form-data
路由处理程序之前没有调用/postFormAct
解析中间件。
您设置了两个解析中间件,但没有一个解析此multipart/form-data
内容类型。
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
Multer这样做,因此您可以在req.body.user
中间件之后访问处理程序中的req.body.email
和upload
变量。