Jelajahi Sumber

更新异常

lrf 1 tahun lalu
induk
melakukan
b09be089eb
2 mengubah file dengan 15 tambahan dan 0 penghapusan
  1. 9 0
      src/interface/ErrorVO.ts
  2. 6 0
      src/middleware/response.middleware.ts

+ 9 - 0
src/interface/ErrorVO.ts

@@ -0,0 +1,9 @@
+import { get } from 'lodash';
+export class ErrorVO {
+  constructor(response: object) {
+    this.errcode = get(response, 'code');
+    this.errmsg = get(response, 'message');
+  }
+  errcode: string;
+  errmsg: string;
+}

+ 6 - 0
src/middleware/response.middleware.ts

@@ -3,6 +3,8 @@ import { Middleware, App } from '@midwayjs/decorator';
 import { NextFunction, Context, Application } from '@midwayjs/koa';
 import { VOBase } from '../interface/VOBase';
 import { get } from 'lodash';
+import { ErrorVO } from '../interface/ErrorVO';
+import { ServiceError } from '../error/service.error';
 /**
  * 返回结果处理拦截器
  * 响应头的content-type含有'/files'的情况为请求文件,重写响应头即可
@@ -24,6 +26,10 @@ export class ResponseMiddleware implements IMiddleware<Context, NextFunction> {
         const resHeaderContentType = response.header['content-type'] as string;
         if (!resHeaderContentType.includes('/files')) {
           const body = response.body;
+          if (body instanceof ServiceError) {
+            const r = new ErrorVO(body);
+            return r;
+          }
           const nb = new VOBase(body as object);
           return nb;
         } else {