前書き
expressを使うとき何となくmiddlewareを使っていたので、middlewareについて調べていました。
※自分用の備忘録として記事を作成しています
middleareとexpressの関係性
前提として expressでは基本的に一連のmiddlware関数呼び出す。
⇒ expressアプリケーションを起動することで必要なmiddlewareが読み出されるわけですね!!!
上手く使えるようになりたいものです笑
middlewareができること
middlewareは下記の4つのことができます
- 任意のコードを実行する。
- リクエストオブジェクトとレスポンスオブジェクトを変更する。
- リクエストレスポンスサイクルを終了する。
- スタック内の次のミドルウェア関数を呼び出す。
具体的に見ていきましょう!

今回はapp.jsの33,34行目でマウント・パスを指定しないミドルウェア関数を設定しました。
この関数は、アプリケーションがリクエストを受け取るたびに実行されます。
localhost:3000にアクセスしてみましょう!
/ に対してgetリクエストを送信する過程において"hey yuta"とTime:~ が確認できましたね!
次に先ほど設定したmiddlewareの処理の一部を yuta という定数に格納し再度middlewareで表示しみましょう!
現在は全てのリクエストに対してconst yuta(定数) の処理が走るようになっています。
今度はconst yuta(定数)が走る範囲を限定してみましょう!
localhost:3000/yuta
のpathでアクセスした場合(GET)にのみconst yuta が走るようにしましょう!
確認できましたね!
このようにmiddlewareはどのリクエストに対してリクエストに合わせたmiddlewareを設定できます!