由於用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...