1234567891011121314151617181920212223242526272829 |
- module.exports = () => {
- return async function errorHandler(ctx, next) {
- try {
- await next();
- } catch (err) {
- // 所有的异常都在 app 上触发一个 error 事件,框架会记录一条错误日志
- ctx.app.emit('error', err, ctx);
- console.log("--->xxxxxxxxxxxxxxxxxxxxxxxxx" , err );
- const status = err.status || 500;
- // 生产环境时 500 错误的详细错误内容不返回给客户端,因为可能包含敏感信息
- let error = err;
- if( typeof error != "string")
- {
- error = (status === 500 && ctx.app.config.env === 'prod') ? 'Internal Server Error' : err.message;
- }
-
- ctx.logger.info(status);
-
- if (status === 422) {
- error = err.errors;
- }
- ctx.body = {errorNo: status, success:false, message:error,result:null};
- ctx.status = 200;
- }
- };
- };
|