如何从请求中获取表单/表单数据? Nodejs的

时间:2019-08-16 05:48:42

标签: node.js express

我正在尝试制作一个包含multipart / form-data的API端点。

目前,我还没有写好html。但是我很可能会创建一个包含多个文本输入,复选框和文件上传的表单。我将把表单作为multipart / form-data发送到所述API端点。我正在使用multipart / form-data,因为一旦它到达API端点,我将把图像上传到AWS存储桶。是否有一些类似于request.body或request.params的东西,可以在请求内部获取multipart / form-data?

我尝试通过POST request.body访问表单数据值,但是body是一个空对象。

Routes.js

module.exports = (function() {
   return {
      addProfile: function(req, res){
         try {
           console.log(req.body); // <-- Empty object
           res.status(200).send('yoo');
         } catch (err) {
           res.status(200).send({error:err});
         }
      }
   }
})();

Server.js

var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({extended: true});
app.use(bodyParser.json());

1 个答案:

答案 0 :(得分:0)

使用multiparty中间件来分析上传的文件。

const multiparty = require('multiparty');
    module.exports = (function() {
        return {
          addProfile: function(req, res){
             try {
                var form = new multiparty.Form();
                form.parse(req, function(err, fields, files) {
                    console.log(files);
                    console.log(fields);
                });
               res.status(200).send('yoo');
             } catch (err) {
               res.status(200).send({error:err});
             }
          }
        }
    })();