天天看點

node.js學習筆記(20) express中間件

開發過javaee的童鞋一定知道filter,它是一個過濾器,可以攔截任何請求,可以對請求的request和response做相關處理。filter的一般形式是這樣的:

web.xml:

express中也有這種過濾器,但它叫中間件。跟filter不同的是,它是一個函數。它也可以通路請求對象(request object (req)), 響應對象(response object (res)), 和 web 應用中處于請求-響應循環流程中的中間件,一般被命名為 next 的變量。

express中間件可分為五種:

應用級中間件

路由級中間件

錯誤進行中間件

内置中間件

第三方中間件

<b>應用級中間件</b>

<b>

</b>

即application級中間件,作用域貫穿整個application,application也就是express的執行個體。

使用express-generator建立一個項目middleware:

打開app.js,我們可以看到其中一段404的應用級中間件:

應用級中間也可以指定範圍,比如這樣:

<b>路由級中間件</b>

路由級中間件與應用級相差無幾,隻是綁定的對象變成了express.router的執行個體。

舉個栗子, routes/index.js:

<b>錯誤進行中間件</b>

普通中間件有三個參數,req、res和next,而錯誤進行中間件有4個參數,分别是err、req、res和next。

app.js有一段錯誤進行中間件的代碼:

<b>内置中間件</b>

express.static 是 express 唯一内置的中間件。

app.js中是這樣使用的:

<b>第三方中間件</b>

顧名思義,這是第三方提供的中間件,為express的功能提供補充。

第三方中間件可以注冊為應用級中間件,也可以注冊為路由級中間件。

仍然可以看app.js的代碼片段: