Multipart/form-data in expresses时如何获取其他类型字段

How to get other type fields when Multipart/form-data in expresses

我正在创建一个表单来上传图片,同时该表单包含其他字段。问题是,当我尝试使用 req.body 获取表单数据时,未定义。你知道为什么吗?使用 enctype="multipart/form-data"?

时无法获得其他输入

您可以按如下方式使用 multiparty 模块

var multiparty = require('multiparty');

exports.parseForm = function (req, res) {

   var form = new multiparty.Form();
   form.parse(req, function(err, fields, files) {

     //here you can read the appropriate fields/files

   });
};

还要确保您在 html

中正确设置了 enctype
<form role='form' method='post' enctype="multipart/form-data">

当我使用它时,它是通过 HTML 表单提交多个文本字段和一个图像文件。然后在我的 parseForm 函数中,我会将它们捆绑到一个对象中,如下所示保存到 mongo

form.parse(req, function(err, fields, files) {
      var temp = fields;
      temp.image = {};
      temp.image.data = fs.readFileSync(files.image[0].path);
      temp.image.contentType = 'image';
      var product = new Product(temp);
      product.save();
      res.redirect('/');
});