我有一个要求提供文本和文件的表单。我使用multer进行文件上传。问题是,如果我使用req.body
enctype=multipart/form-data
检索文字
路线档案
router.post('/new-job', function(req,res,next){
upload(req,res,function(err) {
if(err) {
return res.end("Error uploading file.");
}
});
var newJob = {
job_name: req.body.job_name, //Cannot retrieve this two
job_desc: req.body.job_desc,
};
var newJobData = new Jobs(newJob);
newJobData.save(function(err,user){
if(err)
console.log(err);
});
res.render('jobs/new-job', {job_added:true});
});
Multer配置
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, 'public/uploads');
},
filename: function (req, file, callback) {
callback(null, file.originalname);
}
});
注释
req.body.job_name
,则返回未定义的enctype=multipart/form-data
我可以检索文本就好了,虽然我无法上传文件答案 0 :(得分:1)
在解析请求之前,您无法访问req.body
内容,因此要么将代码移到upload()
回调中,或删除明确{{1}完全调用并将upload()
放在路由处理程序之前:
upload