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到文件就可以運行。
express中間件的理解