結論
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になるに当たって外部ミドルウェアになって、それがまた搭載されたようですね。