koa2中介軟體簡易分析

2021-09-03 02:07:50 字數 1344 閱讀 4839

koa-generator支援koa1.x與koa2.x(node 7.6+,babel)。安裝完成腳手架後,選擇不同的命令koa/koa2。

全域性安裝

npm install -g koa-generator
快速建立專案結構,直接使用koa2命令即可,簡單粗暴;各可選引數的含義在koa-generator上有

直接使用上面的命令安裝依賴

洋蔥圖是官方解釋中介軟體的標配菜。從接收request 到 response的返回,中間一圈一圈的代表中介軟體,如圖右下的箭頭等等。從request到response,每乙個中介軟體都會經歷兩次。初始化koa例項後使用use載入乙個中介軟體,可以看出json(),logger()即是乙個函式的執行。

const koa = require('koa')

....

在koa-json中介軟體原始碼中可以看到匯出的即是乙個函式,在函式體中return 了另外乙個函式,注意裡面引數為ctx與next (具體見koa 文件

由此我們定義乙個中介軟體,next表示函式暫停將控制權交給下乙個中介軟體,函式aw表示自己要處理的邏輯

koa執行順序類似於棧的操作。在目錄下建立middleware目錄,在windows若使用命令列可以在git bash中使用

mkdir middleware

cd middleware

touch aw.js bw.js cw.js

啟動服務,我們可以看到" aw start "最先列印,但是在bw cw中介軟體執行end後才有「aw end「,同理bw 在cw end之後才 「bw end」。可以看出,中介軟體的引用有一定的順序,在任何內層中介軟體中修改了資料,在外層中都可以修改回來

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...

koa2中介軟體實現原始碼解析

眾所周知,koa2核心的部分就是middleware和context了,本文將從結合官網demo以及原始碼對其進行解讀 const koa require koa x response time const start date.now await next const ms date.now st...