快速中間件

中間件是連接到路由過程的功能,可以在鏈中的某個點執行任意操作(取決於我們要執行的操作)。

中間件是連接到路由過程的功能,可以在鏈中的某個點執行任意操作(取決於我們要執行的操作)。

通常用於編輯請求或響應對象,或在請求到達路由處理程序代碼之前終止請求。

中間件被添加到執行堆棧中,如下所示:

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’))

通過將其用作路由定義的第二個參數,我們還可以將中間件功能設置為僅針對特定路由(而不是針對所有路由)運行:

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

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

如果您需要存儲在中間件中生成的數據,以將其傳遞給後續的中間件功能或請求處理程序,則可以使用Request.locals目的。它將數據附加到當前請求:

req.locals.name = 'Flavio'

免費下載我的Express.js手冊


更多速成教程: