KOA筆記(01) 路由與中介軟體

2021-10-06 02:15:05 字數 2940 閱讀 4930

1、koa的基本使用

koa中的ctx是內容的縮寫,裡面包含了request、response等等內容

const koa =

require

('koa');

//引入

newkoa()

;//例項化

//配置中介軟體

use(

async

(ctx)

=>

)listen

(3000);

//監聽

2、koa路由

//koa路由 路由是乙個由url(或者叫路徑)和乙個特定方法(get post等)

//組成的,涉及到如何響應客戶端對摸個網路站點的訪問

//具體解釋

//根據不同1的url位址,載入不同的頁面實現不同的功能

//koa中需要安裝對應的koa-router模組來實現路由

具體示例

const koa =

require

('koa');

//引入

const router =

require

('koa-router'

)new

koa();

//例項化

const router =

newrouter()

//var router = require('koa-router')()//也可以通過這種方式引入和例項化路由

//配置路由

router.

get(

'/',

async

(ctx)

=>).

get(

'/news'

,async

(ctx)

=>).

get(

'/getdio'

,async

(ctx)

=>

)//使用路由

.use(router.

routes()

)//啟動路由 路由生效

.use

(router.

allowedmethods()

);//可選項,建議配置

/*allowedmethods 用在了路由匹配.routes()之後,

此時根據ctx.status設定響應頭*/

listen

(3000);

//監聽

3、動態路由

使用params獲取動態路由的傳值

獲取動態路由的傳值 當動態路由傳遞多個引數時,

ctx.params返回的是乙個物件

.

get(

'/jojo/:aid'

,async

(ctx)

=>).

get(

'/jojo/:aid/:cid'

,async

(ctx)

=>

)

4、中介軟體

koa中的中介軟體和express不同,koa中介軟體優於路由執行,等中介軟體執行之後再匹配路由

中介軟體的功能一般包括

1、執行任何**

2、修改請求和響應物件

3、終結請求-響應迴圈

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

ps:如果我的get post 函式中沒有next引數,那麼久匹配上第乙個路由就不會往下匹配了,如果想要往下匹配,

需要next()

下面看個例子

const koa =

require

('koa');

const router =

require

('koa-router');

const koa =

newkoa()

;const router =

newrouter()

;//1、應用級中介軟體(處理事務)

koa //匹配路由之前列印日期

.use

(async

(ctx, next)

=>

)//錯誤資訊中介軟體(報錯反饋)

.use

(async

(ctx, next)

=>

else})

//2、路由級中介軟體(在路由中相關操作)

//匹配到new路由以後繼續向下匹配路由

router

.get(

'/news'

,async

(ctx, next)

=>).

get(

'/news'

,async

(ctx, next)

=>

)router

.get(

'/',

async

(ctx)

=>

)koa

.use(router.

routes()

).use(router.

allowedmethods()

).listen

(3000);

console.

log(

'127.0.0.1:3000'

);

正確的執行順序是,第乙個中介軟體,第二個中介軟體的next()上部分,路由匹配,第二個中介軟體的next()下部分

輸出為

2020-05

-12t14:35:

48.793z

這是乙個返回日期中介軟體

這是乙個錯誤處理中介軟體

路由已執行

/

koa 03 路由級中介軟體

koa 路由 get 傳值 在 koa2 中 get 傳值通過request接收,但是接收的方法有兩種 query 和 querystring query 返回的是格式化好的引數物件 querystring 返回的是請求字串 引入模組 const koa require koa const rout...

2 Koa中介軟體與洋蔥模型

1.async await 為了更好的理解aysnc await,我們先請求兩個介面 1.請求github中的使用者介面 請求github使用者介面 fetch then res res.json then json console.log json 2.請求github中的使用者介面後,請求特定使...

koa 中,中介軟體非同步與同步的相關問題

同步中介軟體很容易理解,如以下 1 const router require koa router 2 koa new router 34 fs require fs 5 6 中介軟體執行順序 與非同步中介軟體 7 const one ctx,next 1213 const two ctx,next...