koa是由 Express 原班人馬打造的新的web框架。套用其官方的說法:Koa 應用是一個包含一系列中間件 generator 函數(shù)的對象。 這些中間件函數(shù)基于 request 請求以一個類似于棧的結構組成并依次執(zhí)行。  

koa的中間件系統(tǒng)原理:

  Koa的精妙之處就在于其基于promise的中間件系統(tǒng)的實現(xiàn),避免了免除重復繁瑣的回調函數(shù)嵌套。Koa的中間件是一系列generator函數(shù)的對象,執(zhí)行起來有點類似于棧的結構,依次執(zhí)行。從網(wǎng)上找到一張圖可以比較形象的說明koa的中間件是如何工作的:

Android培訓,安卓培訓,手機開發(fā)培訓,移動開發(fā)培訓,云培訓培訓

  每個中間件都是generator函數(shù),當一個請求過來的時候,會依次經(jīng)過各個中間件進行處理,當遇到await next()時,Koa 暫停了該中間件,執(zhí)行下一個中間件。直到某個中間件不調用下個中間件,即沒有處理await next()。則kao會逆序向上依次執(zhí)行被暫停的中間件的剩余部分邏輯。

  代碼實例如下:

Android培訓,安卓培訓,手機開發(fā)培訓,移動開發(fā)培訓,云培訓培訓

 1 const Koa = require('koa'); 2 const app = new Koa(); 3 /** 4  * 請求依次進入下面三個中間件 5  * */ 6 // x-response-time 7 app.use(async function (ctx, next) { 8     /** 9     
        
		

網(wǎng)友評論