关于 nest
vscode 调试 nest
常规launch.json配置,npm启动start:debug命令
异常过滤器
Nest 带有一个内置的异常层,该层负责处理应用程序中所有未处理的异常。当应用程序代码未处理异常时,该层会捕获该异常,然后该层会自动发送适当的用户友好响应。

此操作由内置的全局异常筛选器执行,该筛选器处理 HttpException 类型的异常(及其子类)。当无法识别异常时(既不是 HttpException 也不是继承自 HttpException 的类),内置的异常过滤器会生成以下默认 JSON 响应:
json
{
"statusCode": 500,
"message": "Internal server error"
}管道(pipe)
管道是一个用 @Injectable() 装饰器注释的类,它实现了 PipeTransform 接口。

管道有两个典型的用例:
- 转换:将输入数据转换为所需的形式(例如,从 String 到 Integer)
- 验证:评估输入数据,如果有效,只需将其原封不动地传递即可;否则,抛出异常
在这两种情况下,管道都对控制器路由处理程序正在处理的参数进行操作。Nest 在调用方法之前插入一个管道,管道接收发往该方法的参数并对其执行操作。任何转换或验证操作都发生在这个时候,之后将使用任何(可能)转换的参数调用路由处理程序。
TIP
管道在异常区域内运行。这意味着,当 Pipe 引发异常时,它由异常层(全局异常过滤器和应用于当前上下文的任何异常过滤器)处理。鉴于上述情况,应该很清楚,当在 Pipe 中抛出异常时,随后不会执行任何控制器方法。这为您提供了一种最佳实践技术,用于验证从系统边界的外部源进入应用程序的数据。