koa router使用細節

2021-09-26 22:57:19 字數 1344 閱讀 8422

由於用nodejs開發後端,選擇了koa 作為開發框架,但是koa只是乙個核心框架,路由、檔案上傳等功能都是由第三方中介軟體提供。

這裡用到了koa-router 中介軟體實現路由功能

這是乙個比較成熟且使用廣泛的路由中介軟體

乙個比較基礎的使用方式如下

var koa =

require

('koa');

var router =

require

('koa-router');

newkoa()

;var router =

newrouter()

;router.

get(

'/',

(ctx, next)

=>);

.use

(router.

routes()

).use(router.

allowedmethods()

);

需要實現兩個路由

get /resources/:resource_id

get /resources/types

寫法如下

...

router

// 獲取資源類別

.get

("/resources/types"

, getresourcetypes)

// 獲取指定資源

.get

("/resources/:resource_id"

, getresource)

...

async

function

getresourcetypes

(ctx, next)

async

function

getresource

(ctx, next)

奇怪的事情發生了

當訪問http://mydomain/resources/types時列印了

hello 1

hello 2

而不是hello 1

解決過程

q:看來是同時匹配到兩個路由,應該是next的問題

a:去掉await next()果然ok了

koa router 路由優先順序問題

koa router 根據定義的順序,先定義的先被匹配,因此應該講特殊路由放在前面定義,最後定義通用路由 如下 是個錯誤的示例,如果訪問 http localhost 3000 xixi 將顯示 dongtai 因為被第乙個路由優先捕獲了,因此要調整兩個路由的順序 varkoa require ko...

koa框架會用也會寫 koa router

var koa require koa var router require koa router var router new router router.get home ctx,next router.get user ctx,next 複製 var koa require koa var r...

VertexHelper使用細節

使用vertexhelper建立出來的資料 int num 8 b2vec2 verts 8 verts 0 set 1.2f ptm ratio,159.5f ptm ratio verts 1 set 240.7f ptm ratio,78.4f ptm ratio verts 2 set 56...