[nodejs框架] 整合jwt-koa鉴权异常处理以及koa全局异常处理

521 阅读1分钟

参考资料: www.tutorialspoint.com/koajs/koajs…

// 全局异常处理中间件
export default async (ctx, next) => {
  return await next().catch(e => {
    if (401 === e.status) {
      ctx.status = 401
      ctx.body = {
        msg: 'Protected resource, use Authorization header to get access\n'
      }
    } else {
      ctx.status = e.status || 500
      ctx.body = Object.assign({
        code: 500,
        msg: e.message
      }, process.env.NODE_ENV === 'development' ? { stack: e.stack } : {})
    }
  })
}

设置完之后在src/index.js主入口文件中进行导包使用

import errHandle from './utils/errHandle'
app.use(errHandle)