koa并未對路由和參數(shù)進行高度封裝所有需要使用中間件來幫助
路由@koa/router
npm install @koa/router
先將其模塊化
const Router = require('@koa/router')
const router = new Router({prefix:'/api/v1'})
router.get('/user/info',ctx=>{
ctx.body = 'hello user'
})
module.exports = router
然后再用koa的實例use(router.routes())就可以掛載到koa上了
參數(shù)傳遞
query和params是可以通過上下文獲取到的但是body不能,此時可以安裝koa-body中間件
npm install koa-body
之前舊版本引入是直接引入的新版本需要按需引入,引入后再掛載就可以在router中通過ctx.request.body獲取到客戶端請求的參數(shù)了
const {koaBody} = require('koa-body')
app.use(koaBody())
錯誤接管
拋出錯誤可以用ctx.throw(401,'用戶不存在')
執(zhí)行錯誤可以綁定監(jiān)聽
app.on('error',(err,ctx)=>{
console.log(err);
ctx.body = err
})