1、什么是中間件
中間件是一個可訪問的請求對象和響應(yīng)對象,在express應(yīng)用的請求響應(yīng)循環(huán)里,下一個內(nèi)聯(lián)的中間件通常用變量next表示。中間件的功能包括:
執(zhí)行任何代碼
修改請求和響應(yīng)對象
終結(jié)請求-響應(yīng)循環(huán)
調(diào)用堆棧中下一個中間件
注:如果中間件沒有響終結(jié)請求響應(yīng)循環(huán),則必須調(diào)用next()方法,將控制權(quán)交給下一個中間件。
2、應(yīng)用級中間件:
應(yīng)用級中間件綁定到 express 實例,使用 app.use() 和 app.VERB() 。
掛載一組中間件:
如果需要在中間件棧中跳過剩余中間件,調(diào)用 next(‘route’) 方法將控制權(quán)交給下一個路由。需要注意的是 next(‘route’) 只對使用 app.VERB() 或 router.VERB() 加載的中間件有效。
3、路由級中間件:
路由級中間件綁定的對象為express.Router(),使用router.use()或router.VERB()加載
4、錯誤處理中間件
錯誤處理中間件有四個參數(shù),定義錯誤處理中間件,必須使用這四個參數(shù)。
5、內(nèi)置中間件
express.static(root, [options])
express.static 是 Express 唯一內(nèi)置的中間件,它基于 serve-static,負責在 Express 應(yīng)用中提供靜態(tài)資源。
參數(shù) root 指提供靜態(tài)資源的根目錄。
每個應(yīng)用可有多個靜態(tài)目錄。
6、第三方中間件
Express 是一款提供路由和中間件的 Web 框架,但其本身的功能卻異常精簡。Express 應(yīng)用的功能通過第三方中間件來添加。安裝所需功能的 node 模塊,并在應(yīng)用中加載,可以在應(yīng)用級加載,也可以在路由級加載