ExpressのMiddleware
routingの過程で何らかの処理を差し込む
app.use(fn)
とか、 router.get('/', fn)
の fn
の部分のことをmiddlewareと呼んでいる
app.hoge()
のような関数を羅列し、上から実行していく
routingに関するものはmatchしたものがあれば、一番最初にmatchしたものが実行される
matchするものが複数ある場合などに、2番目以降のものも実行したい時は next()
を呼ぶ
middlewareを分類すると5種類ある
Application-level
最も一般的なもの
app.hoge()
に対するもの
3つの引数
Router-level
Application-levelとほぼ同じ
3つの引数
Error-handling
4つの引数
third-party
外部ライブラリを使ったやつ
e.g. cors()
Built-in
v4以降は存在しない
tsapp.use(function (err, req, res, next) {
console.error(err.stack)
res.status(500).send('Something broke!')
})