刚接触Nestjs的小白不知道Nestjs的请求处理顺序的话,这会非常使得咱们服务端不好使用。
下面是请求处理顺序图:
总结:
-
守卫(Guards)
-
守卫是请求处理的第一层,用于确定请求是否应该继续处理。它们通常用于身份验证和授权。
-
如果守卫返回
false
,请求将被拒绝,不会继续处理。
-
-
拦截器(Interceptors)
-
拦截器在请求到达控制器之前和响应返回客户端之前执行。它们可以用于修改请求或响应,或者执行一些通用的逻辑(如日志记录)。
-
拦截器可以对请求进行预处理,或者对响应进行后处理。
-
-
管道(Pipes)
-
管道主要用于数据转换和验证。它们可以在请求到达控制器之前对请求数据进行处理。
-
管道通常用于验证请求体、查询参数或路径参数。
-
-
控制器(Controller)
-
控制器是处理请求的核心部分。它们接收请求并返回响应。
-
控制器方法会处理具体的业务逻辑。
-
-
过滤器(Filters)
-
过滤器用于捕获和处理异常。它们可以在控制器方法抛出异常时执行。
-
过滤器通常用于全局异常处理,确保异常能够被正确捕获并返回给客户端。
-