Browse Source

全局异常捕获

lrf 2 years ago
parent
commit
54e985e688
3 changed files with 16 additions and 0 deletions
  1. 2 0
      src/configuration.ts
  2. 13 0
      src/filter/default.filter.ts
  3. 1 0
      src/index.ts

+ 2 - 0
src/configuration.ts

@@ -5,6 +5,7 @@ import * as koa from '@midwayjs/koa';
 import * as typegoose from '@midwayjs/typegoose';
 import * as Typegoose from '@typegoose/typegoose';
 import { ResponseMiddleware } from './middleware/response.middleware';
+import { DefaultErrorFilter } from './filter/default.filter';
 @Configuration({
   namespace: 'free',
   imports: [koa, typegoose],
@@ -26,6 +27,7 @@ export class FreeConfiguration {
   async onReady() {
     // TODO something
     this.app.getMiddleware().insertLast(ResponseMiddleware);
+    this.app.useFilter([DefaultErrorFilter]);
     Typegoose.setGlobalOptions({
       schemaOptions: {
         id: true,

+ 13 - 0
src/filter/default.filter.ts

@@ -0,0 +1,13 @@
+import { Catch } from '@midwayjs/decorator';
+import { Context } from '@midwayjs/koa';
+
+@Catch()
+export class DefaultErrorFilter {
+  async catch(err: Error, ctx: Context) {
+    // 所有的未分类错误会到这里
+    return {
+      errcode: err['code'],
+      errmsg: err.message,
+    };
+  }
+}

+ 1 - 0
src/index.ts

@@ -7,3 +7,4 @@ export { VOBase } from './interface/VOBase';
 export { BaseModel } from './entity/BaseModel';
 export * as meta from './entity/meta';
 export { ResponseMiddleware } from './middleware/response.middleware';
+export { DefaultErrorFilter } from './filter/default.filter';