【问题标题】:cURL post multiple fields along with file - form fields not displayingcURL 发布多个字段以及文件 - 表单字段不显示
【发布时间】:2017-02-07 05:21:02
【问题描述】:

我正在尝试使用 Express 4.0 将多个表单字段与一个文件字段混合发布到我的 Node 应用程序(版本 7.4.0),但这些字段没有通过 req 对象中的服务器发送到服务器.

curl -X POST -H 'content-type: multipart/form-data' -F 'userEmail=my@gmail.com' -F upload=@/Users/me/Desktop/test_docs/doc1.xlsx localhost:5000/api/payments

但是当我登录console.log('REQ', req.body); 时,我得到{ },而我预计req.body 中至少存在userEmail

我按照推荐使用bodyParser 中间件

  app.use(bodyParser.json());
  app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
    extended: true,
  }));

为什么表单域没有通过?然而,如果我以application/JSON 发布,我可以看到req.body 中的字段。

【问题讨论】:

    标签: node.js express curl


    【解决方案1】:

    根据body-parser的文档:

    这不处理多部分实体,因为它们的复杂性和 通常大的性质。对于多部分实体,您可能对 以下模块:busboy、connect-busboy、multiparty、 连接多方,强大,多方。

    例如如果multer:

    // /api/payments.js
    
    var express = require('express');
    var router = express.Router();
    var multer  = require('multer')
    var upload = multer({ dest: 'uploads/' })
    
    /* POST /api/payments */
    router.post('/payments', upload.single('upload'), function(req, res, next) {
      res.json( req.body )
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      • 2012-01-27
      相关资源
      最近更新 更多