我尝试使用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
中的字段。
答案 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 )
});