結論
v4.16.0
以降のExpressを使用している場合は、express.json()
が使える。
はじめに
Express
でクライアント経由からデータを会得する場合、Body-Parser
をインストールしてreq.body
経由でデータを会得するのが一般的でした。
しかし、現在のExpressには、Body-Parserの機能が標準で搭載されていることを知りました。それがexpress.json()
です。
express.json()
とは
Body-Parser
を基にExpressに組み込まれた機能です、クライアントから送信されたデータを、req.body
経由で会得、操作できます。
This middleware is available in Express v4.16.0 onwards.
4.16.0以降のバージョンに搭載しているので、それ以前のExpressでは使えないようです。
(2019年6月20日現在npmからデフォルトでインストールできる最新版がv4.17.1、最新のバージョンを知りたい場合はexpress - npmへ)
使い方
appに
app.use(express.json())
app.use(express.urlencoded({ extended: true }));
を記述します。
作ってみた
GitHub - atlansien/POST-processing-at-express_json
過去に作ったBody-Parserを利用したPOSTリクエスト処理を行うものですが、express.jsonに変更してもとくに問題なく動作しました(機能が少なすぎるのはありますが)
Body-Parserとの違い
とくに差は見当たりませんでした。今後Expressの最新版が使える場合は、Body-Parserをインストールしなくても良さそうです。
Express3でも標準搭載だった。
Express3
でも、Body-Parserはexpress.bodyParser
として使用できたみたいです。Express4になるに当たって外部ミドルウェアになって、それがまた搭載されたようですね。