koa并未对路由和参数进行高度封装所有需要使用中间件来帮助
路由@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上了
参数传递
query
和params
是可以通过上下文获取到的但是body
不能,此时可以安装koa-body
中间件
npm install koa-body
之前旧版本引入是直接引入的新版本需要按需引入,引入后再挂载就可以在router中通过ctx.request.body
获取到客户端请求的参数了
const {koaBody} = require('koa-body')
app.use(koaBody())
错误接管
抛出错误可以用ctx.throw(401,'用户不存在')
执行错误可以绑定监听
app.on('error',(err,ctx)=>{
console.log(err);
ctx.body = err
})
网友评论