2017-02-07 6 views
0

Express 4.0を使用してノード・アプリケーションver 7.4.0にファイル・フィールドを混在させて複数のフォーム・フィールドをPOSTしようとしていますが、 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);をログインしたとき、私はreq.bodyに少なくともuserEmail存在を期待されるとき、私は、{ }を取得します。

私はお勧め

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

はなぜフォームフィールドが通過来ていないようbodyParserミドルウェアを使用していますか?それでも、application/JSONとして投稿すると、フィールドはreq.bodyに表示されます。

答えて

0

body-parserのドキュメントによると:

これは彼らの複雑で 一般的に大規模な性質のためにマルチパートボディを、処理しません。マルチパートのボディについては、 というモジュールを以下に興味があります:busboy、connect-busboy、multiparty、 connect-multiparty、formidable、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) 
}); 
関連する問題