两种类型的过滤器的黑白差异是什么?以及何时使用什么?请用任何例子解释一下
@Catch(HttpException)
export class HttpExceptionFilter implements ExceptionFilter {
}
@Catch()
export class AllExceptionsFilter extends BaseExceptionFilter {
}
Run Code Online (Sandbox Code Playgroud)
ExceptionFilter是一个接口,定义当前类应该实现catch带有签名的方法(exception: unknown, host: ArgumentHost)。
BaseExceptionFilter是一个已经在 NestJS 中创建的具有工作catch方法的类。通过使用,extend您可以添加自己的逻辑,catch然后在实现调用的末尾super.catch(exception, host),让 Nest 处理剩下的事情。
两者的主要区别在于您想要编写多少逻辑以及想要添加多少逻辑。如果您对 Nest 已经处理错误的方式感到满意,并且只想添加记录错误的功能,对于数据库来说,那么extends BaseExceptionFilter就很合适。但是,如果您不关心 Nest 的异常过滤器默认情况下如何工作,那么implements ExceptionFilter编写您自己的自定义逻辑是可行的方法。
| 归档时间: |
|
| 查看次数: |
1710 次 |
| 最近记录: |