koa-json-error和koa-router使用的坑

node.js 2020-12-09 2042

koa-json-error是一个koa错误处理的三方库,可以将错误捕获,并生成json格式的错误信息,对于写接口,比较友好,但是自定义性差,也不维护了,貌似很多koa的库都不维护了!

由于koa是一个洋葱模型的框架,正确配置中间件,就显得很重要。

const error = require('koa-json-error')


app.use(error({
  postFormat: (e, { stack, ...rest }) => process.env.NODE_ENV === 'production' ? rest : { stack, ...rest }
})) // 必须配置在路由的上面


// routes
app.use(index.routes(), index.allowedMethods())

正确配置的效果:

{
    "message": "bad",
    "name": "BadRequestError",
    "status": 400
}

错误效果:

这里显示html文件,是由于另一个中间件,koa-onerror的影响,否则就只返回一个字符串。

2、koa-router

koa-router的路由匹配存在优先级问题,先看问题代码:

router.get('/detail/:id', findBookDetail)
router.get('/:tag', findBookTag)
router.get('/hot_words', findBookHotWord);

由于tag在hot_words之前,导致每次请求都进入tag中,因此对于此类路由,要么修改为

router.get('/tag/:tag', findBookTag)

要么,将tag下面路由放置在上方

https://blog.csdn.net/isaisai/article/details/47949091/

https://blog.csdn.net/weixin_33674976/article/details/89058442

标签:node.js

文章评论

评论列表

已有0条评论