天天看點

深究node.js中express的中間件

express:是 一個架構,他是基于node.js平台的web應用開發架構;利用這個架構可以擴充web應用開發所需要的好多基礎功能;

在官網上面是這樣說的:

express是一個自身功能極簡,完全是路由和中間件構成一個web開發架構:從本質上來說,一個Express應用就是在調用各種中間件。”

由此可見,中間件在Express開發中的重要性,是以這裡我們就專門來總結一下中間件

下面咱們選說說中間件的結構:

1,app.use([path],function)

path:是路由的url,預設參數‘/’,意義是路由到這個路徑時使用這個中間件

function:中間件函數

這個中間件函數可以了解為就是function(request,response,next)

中間件分為這幾類:

1 内置中間件:

express.static 是Express目前唯一内置的一個中間件。用來處理靜态資源檔案

2 自定義中間件:

根據中間件的結構我們可以看出其是由路徑以及function構成;對于自己定義的中間件來說,着重點就是這個function在這裡function(req,res,next);當浏覽器端的客戶向伺服器端發送一個請求時,那麼node.js會 為這個請求建立一個request對象;然後根據使用者送出 上來的資料同時建立一個response對象;此時,伺服器 端就會把這個相應所對應的内容發送到前端;以供使用者使用,而要想運作下一個中間件那麼必須在 函數内部加上next;

3第三方中間件

body-parser :解析body中的資料,并将其儲存為Request對象的body屬性。

cookie-parser :解析用戶端cookie中的資料,并将其儲存為Request對象的cookie屬性

express-session :解析服務端生成的sessionid對應的session資料,并将其儲存為Request對象的session屬性

query:這個中間件将一個查詢字元串從URL轉換為JS對象,并将其儲存為Request對象的query屬性。這個中間件在第四個版本中已經内置了無需安裝。

到這裡我們再回過頭看看對中間件的深入了解:

浏覽器向伺服器發送一個請求後,伺服器直接通過request.定位屬性的方式得到通過request攜帶過去的資料(有使用者輸入的資料和浏覽器本身的資料資訊)。這中間就需要有一個函數将這些資料分類做了處理,已經處理好了,最後讓request對象調用使用,對的,這個處理資料處理函數就是我們要說的 中間件 。由此可見,中間件可以總結以下幾點:

1、封裝了一些處理一個完整事件的功能函數。

2、非内置的中間件需要通過安裝後,require到檔案就可以運作。

3、封裝了一些或許複雜但肯定是通用的功能