response.js 884 B

12345678910111213141516171819202122232425262728293031
  1. const debug = require('debug')('koa-weapp-demo')
  2. /**
  3. * 响应处理模块
  4. */
  5. module.exports = async function (ctx, next) {
  6. try {
  7. // 调用下一个 middleware
  8. await next()
  9. // 处理响应结果
  10. // 如果直接写入在 body 中,则不作处理
  11. // 如果写在 ctx.body 为空,则使用 state 作为响应
  12. ctx.body = ctx.body ? ctx.body : {
  13. code: ctx.state.code !== undefined ? ctx.state.code : 0,
  14. data: ctx.state.data !== undefined ? ctx.state.data : {}
  15. }
  16. } catch (e) {
  17. // catch 住全局的错误信息
  18. debug('Catch Error: %o', e)
  19. // 设置状态码为 200 - 服务端错误
  20. ctx.status = 200
  21. // 输出详细的错误信息
  22. ctx.body = {
  23. code: -1,
  24. error: e && e.message ? e.message : e.toString()
  25. }
  26. }
  27. }