nestjs - 你如何在 NestJs 中使用回退异常过滤器

标签 nestjs

我是 NestJs 的新手,我创建了一个回退异常过滤器,现在我想知道如何使用它。换言之,如何将其导入我的应用程序?

这是我的后备异常过滤器:

@Catch(HttpException)
export class HttpExceptionFilter implements ExceptionFilter {

    public catch(exception: HttpException, host: ArgumentsHost): any {
        
        /* Some code here */

        return response.status(statusCode).json({
            status: statusCode,
            datetime: new Date(),
            createdBy: "HttpExceptionFilter",
            errorMessage: exception.message,
        })
    }
}

最佳答案

您需要全局绑定(bind)过滤器才能作为后备。您可以通过以下两种方式之一执行此操作

  1. 在任何模块中使用自定义提供程序。将其添加到模块的 providers 数组
{
  provide: APP_FILTER,
  useClass: HttpExceptionFilter
}

这仍然会在 e2e 测试中生效,因为它是模块定义的一部分

  1. 像这样在您的bootstrap 方法中使用useGlobalFilters
app.useGlobalFilters(new HttpExceptionFilter());

这不会在您的 e2e 测试中生效,因此如果您想要相同的功能,您也需要将其绑定(bind)到这些测试中。

关于nestjs - 你如何在 NestJs 中使用回退异常过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67320350/

相关文章:

node.js - Monorepo 中 NestJs dockerized 应用程序的 VS 代码调试

node.js - NestJS 拦截器 : Unable to set HTTP Headers on outgoing requests

javascript - 如何设置 typeorm .env 文件?

swagger - 所有 Controller 的全局标题(nestJs swagger)

javascript - NestJs - 如何对 DTO 进行单元测试?