Node學習之中間件~
沖天大菠蘿
發(fā)布于 云南 2025-02-28 · 5544瀏覽

中間件(Middleware)是介于應用系統(tǒng)和系統(tǒng)軟件之間的一類軟件,它使用系統(tǒng)軟件所提供的基礎服務(功能),銜接網絡上應用系統(tǒng)的各個部分或不同的應用,能夠達到資源共享、功能共享的目的

在NodeJS中,中間件主要是指封裝http請求細節(jié)處理的方法

例如在express、koa等web框架中,中間件的本質為一個回調函數,參數包含請求對象、響應對象和執(zhí)行下一個中間件的函數

在這些中間件函數中,我們可以執(zhí)行業(yè)務邏輯代碼,修改請求和響應對象、返回響應數據等操作

封裝

koa是基于NodeJS當前比較流行的web框架,本身支持的功能并不多,功能都可以通過中間件拓展實現。通過添加不同的中間件,實現不同的需求,從而構建一個 Koa 應用

Koa 中間件采用的是洋蔥圈模型,每次執(zhí)行下一個中間件傳入兩個參數:

· ctx :封裝了request 和 response 的變量

· next :進入下一個要執(zhí)行的中間件的函數

下面就針對koa進行中間件的封裝:

Koa的中間件就是函數,可以是async 函數,或是普通函數

下面則通過中間件封裝http請求過程中幾個常用的功能:

· token校驗

· 日志模塊

Koa存在很多第三方的中間件,如koa-bodyparser、koa-static等

下面再來看看它們的大體的簡單實現:

· koa-bodyparser

koa-bodyparser 中間件是將我們的 post 請求和表單提交的查詢字符串轉換成對象,并掛在 ctx.request.body 上,方便我們在其他中間件或接口處取值

· koa-static

koa-static 中間件的作用是在服務器接到請求時,幫我們處理靜態(tài)文件

在實現中間件時候,單個中間件應該足夠簡單,職責單一,中間件的代碼編寫應該高效,必要的時候通過緩存重復獲取數據

koa本身比較簡潔,但是通過中間件的機制能夠實現各種所需要的功能,使得web應用具備良好的可拓展性和組合性

通過將公共邏輯的處理編寫在中間件中,可以不用在每一個接口回調中做相同的代碼編寫,減少了冗雜代碼,過程就如裝飾者模式

沖天大菠蘿
沒有簽名 的 神秘 嘉賓
瀏覽 5544
相關推薦
最新評論
贊過的人
評論加載中...

暫無評論,快來評論吧!