再造 koa 入門概覽(一)

2021-10-10 18:01:04 字數 1428 閱讀 7191

koa 框架是在 express 框架之後原班人馬打造的新的 web 框架。和 express 相比,koa 沒有**如何中介軟體,沒有自帶路由處理中介軟體,中介軟體使用洋蔥圈模型,使用 async 函式而不是 co 庫 + generator 函式來處理非同步,本身**只有570行左右。

koa 依賴node v7.6.0及以上版本

nvm install 7.6.0

nvm use 7.6.0

npminstall koa

簡單案例

const koa =

require

('koa');

// 引入 koa 庫

newkoa()

;// 宣告並建立 koa 例項

use(ctx =>);

listen

(8080);

// 啟動 http 服務並繫結 8080 埠

koa 是乙個可以使用兩種不同函式作為中介軟體的框架

async function 非同步函式

common function 普通函式

每個中介軟體都接受乙個 context 上下文(封裝了 http 的 請求與響應物件)

簡單案例 非同步

use(

async

(ctx, next)

=>$-

$ms`);

});簡單案例 同步

use(

(ctx, next)

=>$-

$ms`);

});}

);中介軟體使用洋蔥圈模型,多個中介軟體類似於乙個棧結構,以先進後出的方式執行

執行最外層的中介軟體 next 函式前的**

呼叫 next 函式,把執行權交給下乙個中介軟體

重複 1-2 步,直到最內層的中介軟體,沒有 next 函式,執行完後把執行權交給上乙個中介軟體

執行完 next 函式後的**,執行完後把執行權交給上乙個中介軟體

重複 第 4 步,直到最外層中介軟體函式執行

所有中介軟體處理完畢

簡單案例

const

createmiddleware

= tag =>

}use

(createmiddleware

('aaa'))

;use

(createmiddleware

('bbb'))

;use

(createmiddleware

('ccc'))

;// 最終列印結果

// >>> aaa

// >>> bbb

// >>> ccc

// <<< ccc

// <<< bbb

// <<< aaa

ES6入門概覽一

一 let const 1.let命令 宣告變數僅在塊級作用域有效 let實際上為js新增了塊級作用域 好處 不存在變數提公升 內部宣告的變數 函式 不會影響外部 不可重複宣告變數 2.const 宣告常亮 宣告時賦值 宣告變數 1.var 2.function es5 全域性物件屬性 3.let ...

nodeJs 高階Koa入門

koa 是乙個新的 web 框架,作者和之前的express是同一批人,整個框架的核心就在於中介軟體的使用。大致寫法和express類似 const fs require fs 檔案模組 const koa require koa 匯入koa,和koa 1.x不同,在koa2中,我們匯入的是乙個cl...

Koa入門(三) Koa專案自動化測試

當我們做專案時,寫完乙個功能後都要進行測試,js中測試框架一般使用 mocha chai,如果你還需要測試介面的話,可能還需要supertest測試框架。安裝依賴 yarn add mocha chai supertest d 比如我現在寫個密碼加密,密碼驗證的工具 密碼加密一般用的比較多的是 md...