express中介軟體的理解
參考 :https://blog.csdn.net/huang100qi/article/details/80220012
Express中介軟體分為三種內建中介軟體、自定義中介軟體、第三方中介軟體
可以與node的三種模組比較記憶:核心模組(直接書寫依賴的名稱)、自定義模組(需要通過module.exports 匯出 require進行匯入 匯入的時候必須寫路徑)、第三方模組(需要通過cnpm install 下載 然後在通過require進行引入)。
- Express內建中介軟體
express.static 是Express目前唯一內建的一箇中間件。用來處理靜態資原始檔.
2.Express自定義中介軟體
中介軟體使用時的第二個引數是一個Function(req,res,next)
Req: 當每個請求到達伺服器時,nodejs會為請求建立一個請求物件(request),該請求物件包含客戶端提交上來的資料。
Res: 同時也會建立一個響應物件(response),響應物件主要負責將伺服器的資料響應到客戶端.。
Next: 最後一個引數next是一個方法,因為一個應用中可以使用多箇中間件,而要想執行下一個中介軟體,那麼上一個中介軟體必須執行next()。
3.Express第三方中介軟體
常用的第三方中介軟體:
body-parser 解析body中的資料,並將其儲存為Request物件的body屬性。
cookie-parser 解析客戶端cookie中的資料,並將其儲存為Request物件的cookie屬性
express-session 解析服務端生成的sessionid對應的session資料,並將其儲存為request物件的session屬性。
query 這個中介軟體將一個查詢字串從URL轉換為Json物件,並將其儲存為Request物件的query屬性。
總結:中介軟體是一個處理資料處理函式。瀏覽器向伺服器傳送一個請求後,伺服器直接通過request定位屬性的方式得到通過request攜帶過去的資料(有使用者輸入的資料和瀏覽器本身的資料資訊)。中介軟體將這些資料分類做了處理,最後讓request物件呼叫使用。
- 封裝了一些處理一個完整事件的功能函式。
- 非內建的中介軟體需要通過安裝後,require到檔案就可以執行。