koa-router统一接口返回格式

最近练手koa,有两个需求。

  • 接口返回内容保持统一
  • 接口代码我不想处理ctx.body,我希望得到结果就return,出现错误就throw。
所以就写了一个中间件,代码大概这样。
const ApiRouter = () => async (ctx, next) => { try { const data = https://www.it610.com/article/await next() ctx.body = { success:true, data, } } catch (error) { ctx.body = { success:false, message:error.message, } } }

const api = new Router() api.use(ApiRouter()) // 路由的定义还是跟原来一样 // 区别就是,你不需要用到ctx参数了 // 如果一切正常,你直接return // 如果出现错误,你就抛一个错 api.get('/test', () => { if (Math.random() > 0.5) return 'Hello World!' else throw new Error('Goodbye World!') }) // 应用路由 // 建议放到单独的路径下面 router.use('/api', api.routes(), api.allowedMethods());

【koa-router统一接口返回格式】koa-router统一接口返回格式
文章图片

koa-router统一接口返回格式
文章图片

    推荐阅读