2017-02-07 1 views
0

Я пытаюсь POST несколько полей формы, смешанных с полем файла, в мое приложение Node, версия 7.4.0, используя Express 4.0, но поля aren ' t, поступающего на сервер в объекте req.cURL отправить несколько полей вместе с полями формы файла, не отображающими

curl -X POST -H 'content-type: multipart/form-data' -F '[email protected]' -F [email protected]/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

Согласно документации body-parser:

Это не обрабатывает многокомпонентные тела, из-за их сложной и обычно большой характер. Для многочастных тел вас может заинтересовать следующие модули: busboy, connect-busboy, multiparty, connect-multiparty, greatable, multer.

Например, если 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) 
}); 
Смежные вопросы