駆け出しのエンジニア日記

プログラミング言語勉強中の奮闘日記

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) => {
console.log(`リクエスト時間:${req.requestTime}`);
res.send('ホームページ');
})
app.get('/dogs', (req, res) => {
console.log(`リクエスト時間:${req.requestTime}`);
res.send('わんわん');
})
 
app.listen(3000, () => {
console.log('localhost:3000で待機');
})

指定パス(  "/"  や  "/dogs"  )や関係のないパスにリクエストを投げると、

200や404のステータスコードがログされています。

これは「morgan」のログが正常に動いているということです。

リクエストとレスポンスの間にログをする処理を挟んだという捉え方になります。