cURL发布多个字段以及不显示的文件 - 表单字段

时间:2017-02-07 05:21:03

标签: node.js express curl

我尝试使用Express 4.0将多个表单字段(与文件字段混合)发送到我的Node App,版本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);时,我得到{ },当我预计userEmail中至少存在req.body时。

我正在使用bodyParser中间件作为推荐

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

为什么表格字段不会通过?但是,如果我发布为application/JSON,我可以看到req.body中的字段。

1 个答案:

答案 0 :(得分:0)

根据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 )
});