• NestJS Logo
    NestJS 中文文档
    v10.0.0
    • 介绍
    • 快速上手
    • 控制器
    • 提供者
    • 模块
    • 中间件
    • 异常过滤器
    • 管道
    • 守卫
    • 拦截器
    • 自定义装饰器
    • 自定义提供者
    • 异步提供者
    • 动态模块
    • 依赖注入作用域
    • 循环依赖
    • 模块引用
    • 懒加载模块
    • 执行上下文
    • 生命周期事件
    • 发现服务
    • 跨平台无关性
    • 测试
  • 迁移指南
  • API 参考
  • 官方课程
  1. 文档
  2. 微服务架构
  3. 管道

英文原版

管道

常规管道与微服务管道(microservices pipes)在本质上没有区别。唯一的不同在于,微服务中不应抛出 HttpException,而是应该使用 RpcException。

提示

RpcException 类由 @nestjs/microservices 包提供。

绑定管道

下例演示了如何手动实例化一个方法作用域的管道。与基于 HTTP 的应用类似,你也可以使用控制器作用域的管道(即在控制器类前添加 @UsePipes() 装饰器)。

@UsePipes(new ValidationPipe({ exceptionFactory: (errors) => new RpcException(errors) }))
@MessagePattern({ cmd: 'sum' })
accumulate(data: number[]): number {
  return (data || []).reduce((a, b) => a + b)
}
异常过滤器
守卫