微服务守卫和 常规 HTTP 应用程序守卫 之间没有根本区别。
唯一的区别是,您不应抛出 HttpException
,而应使用 RpcException
。
RpcException
类从 @nestjs/microservices
包中公开。
绑定守卫
以下示例使用方法范围的守卫。与基于 HTTP 的应用程序一样,您也可以使用控制器范围的守卫(即,在控制器类前面加上 @UseGuards()
装饰器)。
ts
ts
@UseGuards(AuthGuard)
@MessagePattern({ cmd: 'sum' })
accumulate(data: number[]): number {
return (data || []).reduce((a, b) => a + b);
}