config.error.js 930 B

1234567891011121314151617181920212223242526272829303132
  1. 'use strict';
  2. const { NafError, BusinessError } = require('naf-core').Error;
  3. module.exports = {
  4. json(err, ctx) {
  5. // json hander
  6. if (err instanceof BusinessError) {
  7. // 业务错误
  8. ctx.body = { errcode: err.errcode, errmsg: err.errmsg };
  9. ctx.status = 200;
  10. } else if (err instanceof NafError) {
  11. // 框架错误
  12. ctx.body = { errcode: err.errcode, errmsg: err.errmsg };
  13. ctx.status = 500;
  14. } else if (err instanceof Error) {
  15. // 其他错误
  16. const res = { errcode: err.status || 500, errmsg: '系统错误', details: err.message };
  17. if (err.status === 422) {
  18. // for egg-validate
  19. res.errmsg = '数据校验错误';
  20. res.details = err.errors;
  21. }
  22. ctx.body = res;
  23. ctx.status = 500;
  24. } else {
  25. // 未知错误
  26. ctx.body = { errcode: 500, errmsg: '未知错误', details: err };
  27. ctx.status = 500;
  28. }
  29. },
  30. };