NestJS 验证空负载

问题描述 投票:0回答:1

我正在为事件处理程序编写输入验证。有效负载可以是

Order
对象或
null
。我需要一些关于如何在此设置中允许
null
有效负载的帮助,因为它们目前被拒绝。

这是我的事件处理程序:

class OrderDTO implements Order {
  @IsUUID()
  readonly id!: string;
}

@EventPattern('orders')
@UsePipes(
  new ValidationPipe({
    transform: true,
    whitelist: true,
    forbidNonWhitelisted: true,
    transformOptions: {
      enableImplicitConversion: true,
    },
  })
)
async handleOrderChange(
  @Payload() order: OrderDTO | null,
  @Ctx() context: KafkaContext
) {
  ...
}

我正在使用

nestjs 10.3.9
class-validator 0.14.1

validation nestjs class-validator
1个回答
0
投票

您的逻辑是使 OrderDTO 可选。这是我建议的解决方法。因此:

  • 尝试使用相应的装饰器 @IsOptional() 使类 OrderDTO 中的所有属性都是可选的
  • 在 uuid id 属性中,您使用 '!'感叹号。这将根据需要放置它。它
  • 类 OrderDTO 实现 Order。里面有什么?您应该确保将其全部作为可选,无论是通过继承还是其他形式。
© www.soinside.com 2019 - 2024. All rights reserved.