koa并未對路由和參數(shù)進(jìn)行高度封裝所有需要使用中間件來幫助
路由@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的實(shí)例use(router.routes())
就可以掛載到koa上了
參數(shù)傳遞
query
和params
是可以通過上下文獲取到的但是body
不能吐咳,此時(shí)可以安裝koa-body
中間件
npm install koa-body
之前舊版本引入是直接引入的新版本需要按需引入,引入后再掛載就可以在router中通過ctx.request.body
獲取到客戶端請求的參數(shù)了
const {koaBody} = require('koa-body')
app.use(koaBody())
錯(cuò)誤接管
拋出錯(cuò)誤可以用ctx.throw(401,'用戶不存在')
執(zhí)行錯(cuò)誤可以綁定監(jiān)聽
app.on('error',(err,ctx)=>{
console.log(err);
ctx.body = err
})