koa2中介軟體機制 洋蔥圈模型

2022-06-06 13:51:14 字數 1769 閱讀 8746

一、什麼是koa的中介軟體:

通俗的講:中介軟體就是匹配路由之前或者匹配路由完成做的一系列的操作,我們就可以把它叫做中介軟體。

在express中介軟體(middleware) 是乙個函式,它可以訪問請求物件(request object (req)), 響應物件(response object (res)), 和 web 應用中處理請求-響應迴圈流程中的中介軟體,一般被命名為 next 的變數。在koa中中介軟體和express有點類似。

中介軟體的功能包括:

執行任何**。

修改請求和響應物件。

終結請求-響應迴圈。

呼叫堆疊中的下乙個中介軟體。

如果我的get、post**函式中,沒有next引數,那麼就匹配上第乙個路由,就不會往下匹配了。如果想往下匹配的話,那麼需要寫next()

二、koa應用可使用如下幾種中介軟體:

應用級中介軟體

路由級中介軟體

錯誤處理中介軟體

第三方中介軟體

三、koa中介軟體的執行順序:

koa 的中介軟體和 express 不同,koa 選擇了洋蔥圈模型。

洋蔥圈模型:

**演示:

通過命令列工具輸入

mkdir koa2-middleware   //

新建名為koa2-middleware的資料夾

cd koa2-middleware //

訪問該資料夾

npm init -y //

初始化npm

npm i koa2 -s //

//

const koa = require('koa2');

koa();

//logger

console.log('第一層洋蔥 - 開始')

await next();

const rt = ctx.response.get('x-response-time');

console.log(`$ $ -$`);

console.log('第一層洋蔥 - 結束')

});//

x-response-time

console.log('第二層洋蔥 - 開始')

const start =date.now();

await next();

const ms = date.now() -start;

ctx.set('x-response-time', `$ms`);

console.log('第二層洋蔥 - 結束')

});//

response

console.log('第三層洋蔥 - 開始')

ctx.body = 'hello world';

console.log('第三層洋蔥 - 結束')

});通過命令列工具輸入

啟動服務

最終目錄結構如下

開啟瀏覽器訪問:localhost:8000

檢視命令列工具列印輸出

Koa中介軟體機制的洋蔥圈模型

const koa require koa console.log 1 await next console.log 6 console.log 2 await next console.log 5 console.log 3 ctx.body hello world console.log 4 c...

koa2 mysql 中介軟體 Koa2 中介軟體

1.什麼是koa2中介軟體?二 常用的五個中介軟體 1.koa 面向node.js的表示式http中介軟體框架,使web應用程式和api更加令人愉快地編寫。koa的中介軟體堆疊以類似堆疊的方式流動,允許您執行下游操作,然後過濾和處理上游的響應。ctx.body hello world 2.koa r...

koa2中介軟體原理

koa2中介軟體的執行就像洋蔥圈一樣,從外面到最裡面,再從最裡面到最外面。const koa require koa logger console.log 第一層洋蔥圈開始 await next const rt ctx.response.get x response time console.lo...