小编Pav*_*nko的帖子

如何使依赖注入适用于 NestJS 中的全局异常过滤器?

我试图避免使用app.useGlobalFilters(new AllExceptionsFilter(...));,但我正在努力让 DI 将我的自定义 LoggerService 注入 AllExceptionsFilter 中。

我的应用程序模块导入了 LoggerModule 并定义了过滤器,如下所示:

import { APP_FILTER } from '@nestjs/core';
...

@Module({
  imports: [LoggerModule],
  providers: [
    {
      provide: APP_FILTER,
      useClass: AllExceptionsFilter,
    },
  ],
})
export default class AppModule {}
Run Code Online (Sandbox Code Playgroud)

异常过滤器(与嵌套文档中的代码几乎相同):

import { ExceptionFilter, Catch, ArgumentsHost, HttpException, HttpStatus } from '@nestjs/common';
import LoggerService from '../modules/logger/logger.service';

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

  catch(exception: Error, host: ArgumentsHost): void {
    const ctx = host.switchToHttp();
    const response = ctx.getResponse(); …
Run Code Online (Sandbox Code Playgroud)

dependency-injection nestjs

8
推荐指数
1
解决办法
4561
查看次数

标签 统计

dependency-injection ×1

nestjs ×1