如何将Logger Service注入异常过滤器

问题描述 投票:0回答:1

我正在开发一个 NestJS 应用程序,并尝试将我的记录器服务注入到 ExceptionFilter 中。这是我的代码:

@Catch(HttpException)
export class HttpExceptionFilter implements ExceptionFilter {
  constructor(private readonly loggerService: LoggerService) {}

  catch(exception: HttpException, host: ArgumentsHost) {
    ...
    this.loggerService.log(exception.message, 'error');
    ...
  }
}

我已经在我的 AppModule 中注册了 HttpExceptionFilter 和 LoggerService,如下所示:

@Module({
  providers: [
    LoggerService,
    {
      provide: APP_FILTER,
      useClass: HttpExceptionFilter,
    },
  ],
})
export class AppModule {}

但是,当执行 HttpExceptionFilter 的 catch 方法时,出现以下错误:

类型错误:无法读取未定义的属性(读取“日志”)

node.js dependency-injection nestjs nest
1个回答
0
投票

在你的主文件中添加


  const loggerService = await app.resolve(LoggerService);

  app.useGlobalFilters(
    new HttpExceptionFilter(loggerService),
  );

© www.soinside.com 2019 - 2024. All rights reserved.