Expressミドルウェア

ミドルウェアは、ルーティングプロセスにフックして、チェーンのある時点で任意の操作を実行する関数です(実行する内容によって異なります)。

ミドルウェアは、ルーティングプロセスにフックして、チェーンのある時点で任意の操作を実行する関数です(実行する内容によって異なります)。

これは通常、リクエストまたはレスポンスオブジェクトを編集したり、ルートハンドラコードに到達する前にリクエストを終了したりするために使用されます。

ミドルウェアは、次のように実行スタックに追加されます。

app.use((req, res, next) => { /* */ })

これはルートの定義に似ていますが、RequestオブジェクトとResponseオブジェクトのインスタンスに加えて、変数に割り当てるミドルウェア関数next

私たちはいつも電話しますnext()ミドルウェア関数の最後で、実行を次のハンドラーに渡すため。それは、応答を途中で終了してクライアントに送り返したい場合を除きます。

通常、次の形式の既製のミドルウェアを使用しますnpmパッケージ。利用可能なものの大きなリストを見つけることができますここに

一例はcookie-parser、Cookieを解析してreq.cookiesオブジェクト。を使用してインストールできますnpm install cookie-parserそしてあなたはそれをこうして使う:

const express = require('express')
const app = express()
const cookieParser = require('cookie-parser')

app.get(’/’, (req, res) => res.send(‘Hello World!’))

app.use(cookieParser()) app.listen(3000, () => console.log(‘Server ready’))

ミドルウェア関数を、ルート定義の2番目のパラメーターとして使用することにより、特定のルートに対してのみ(すべてではなく)実行するように設定することもできます。

const myMiddleware = (req, res, next) => {
  /* ... */
  next()
}

app.get(’/’, myMiddleware, (req, res) => res.send(‘Hello World!’))

ミドルウェアで生成されたデータを格納して、後続のミドルウェア関数または要求ハンドラーに渡す必要がある場合は、Request.localsオブジェクト。そのデータを現在のリクエストに添付します。

req.locals.name = 'Flavio'

私の無料ダウンロードExpress.jsハンドブック


より明確なチュートリアル: