Express 4.16.0以降、状況が再び変更され、Express3.0と同じように使用できるようになりました。express.json()
express.urlencoded()
これは、 Express4.0から4.15までは異なります。
$ npm install --save body-parser
その後:
var bodyParser = require('body-parser')
app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
残りはExpress3.0のようです:
まず、本文の投稿データを解析するためにミドルウェアを追加する必要があります。
次のコード行の一方または両方を追加します。
app.use(express.json()); // to support JSON-encoded bodies
app.use(express.urlencoded()); // to support URL-encoded bodies
次に、ハンドラーでreq.body
オブジェクトを使用します。
// assuming POST: name=foo&color=red <-- URL encoding
//
// or POST: {"name":"foo","color":"red"} <-- JSON encoding
app.post('/test-page', function(req, res) {
var name = req.body.name,
color = req.body.color;
// ...
});
express.bodyParser()
の使用は推奨されないことに注意してください。
app.use(express.bodyParser());
...と同等です:
app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
にはセキュリティ上の懸念がexpress.multipart()
あるため、必要な特定のエンコーディングタイプのサポートを明示的に追加することをお勧めします。マルチパートエンコーディングが必要な場合(たとえば、ファイルのアップロードをサポートするため)、これを読む必要があります。