簡單說,中間件(middleware)就是處理HTTP請求的函數,用來完成各種特定的任務,比如檢查用戶是否登錄、分析數據、以及其他在需要最終將數據發送給用戶之前完成的任務。它最大的特點就是,一個中間件處理完,再傳遞給下一個中間件。
node.js的內置模塊http的createServer方法,可以生成一個服務器實例,該實例允許在運行過程中,調用一系列函數(也就是中間件)。當一個HTTP請求進入服務器,服務器實例會調用第一個中間件,完成后根據設置,決定是否再調用下一個中間件。中間件內部可以使用服務器實例的response對象(ServerResponse,即回調函數的第二個參數),以及一個next回調函數(即第三個參數)。每個中間件都可以對HTTP請求(request對象)做出回應,并且決定是否調用next方法,將request對象再傳給下一個中間件。
一個不進行任何操作、只傳遞request對象的中間件,大概是下面這樣:
~~~
function uselessMiddleware(req, res, next) {
next();
}
~~~
上面代碼的next為中間件的回調函數。如果它帶有參數,則代表拋出一個錯誤,參數為錯誤文本。
~~~
function uselessMiddleware(req, res, next) {
next('出錯了!');
}
~~~
拋出錯誤以后,后面的中間件將不再執行,直到發現一個錯誤處理函數為止。
- 1. 概述
- 1.1 搭建HTTPs服務器
- 2. 運行原理
- 2.1 底層:http模塊
- 2.2 對http模塊的再包裝
- 2.3 什么是中間件
- 2.4 use方法
- 3. Express的方法
- 3.1 all方法和HTTP動詞方法
- 3.2 set方法
- 3.3 response對象
- 3.4 requst對象
- 4. 項目開發實例
- 4.1 編寫啟動腳本
- 4.2 配置路由
- 4.3 靜態網頁模板
- 5. 動態網頁模板
- 5.1 安裝模板引擎
- 5.2 新建數據腳本
- 5.3 新建網頁模板
- 5.4 渲染模板
- 5.5 指定靜態文件目錄
- 6. ExpressJS 4.0的Router用法
- 6.1 基本用法
- 6.2 router.route方法
- 6.3 router中間件
- 6.4 對路徑參數的處理
- 7. 上傳文件
- 8. 參考鏈接