Expressのミドルウェア入門
ミドルウェアとは、リクエスト/レスポンスのライフサイクルの中で実行される関数のこ
とを指します。
これまでは下記のものを使用してきました。
//フォームからデータを受け取れるようにする
・app.use(express.urlencoded({ extended: true }));
//リクエストはpostかgetのみなのでPUT, DELETEを使えるようにオーバーライドしておく
・app.use(methodOverride('_method'))
・ミドルウェアはただの関数
・各ミドルウェアはリクエストオブジェクトとレスポンスオブジェクトにアクセス可能
・ミドルウェアは「res.send()」などのメソッドでレスポンスを返してHTTPリクエス
トを終了させることができる
・ミドルウェアは「next()」を呼び出すことで連鎖させることができる
今回は「morgan」というログ用のミドルウェアを使ってみたいと思います。
これを使うとHTTPリクエストのログがターミナルに出力されます。
ログを残しておくことでデバッグの際に役立ったりします。
npm i morgan
これでインストール完了です。
早速index.jsを作成し、記述していきます。
const express = require('express');
const app = express();
const morgan = require('morgan');
//morganはログ用ミドルウェア app.useで使うことができる
app.use(morgan('tiny'));
app.get('/', (req, res) => {
res.send('ホームページ');
})
app.get('/dogs', (req, res) => {
res.send('わんわん');
})
app.listen(3000, () => {
})
指定パス( "/" や "/dogs" )や関係のないパスにリクエストを投げると、
200や404のステータスコードがログされています。
これは「morgan」のログが正常に動いているということです。
リクエストとレスポンスの間にログをする処理を挟んだという捉え方になります。