一、什麼是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...