无法检索正文以及上传,快捷js

时间:2016-08-07 12:38:12

标签: node.js express multer

我有一个要求提供文本和文件的表单。我使用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我可以检索文本就好了,虽然我无法上传文件

1 个答案:

答案 0 :(得分:1)

在解析请求之前,您无法访问req.body内容,因此要么将代码移到upload()回调中,删除明确{{1}完全调用并将upload()放在路由处理程序之前:

upload