Nestjs 和 Class Validator - 至少有一个字段不能为空

Nestjs and Class Validator - at least one field should not be empty

我有 NestJS API,它有一个用于修改资源的 PATCH 端点。我使用 class-validator 库来验证负载。在 DTO 中,所有字段都使用 @IsOptional() 装饰器设置为可选。因此,如果我发送一个空的有效负载,验证会通过,然后更新操作会出错。

我想知道是否有一种简单的方法可以像我一样将所有字段设置为可选,同时确保至少其中一个不为空,因此对象不为空。

谢谢!

我不知道是否可以使用 DTO。 为此,我使用管道。像这样:

Injectable()
export class ValidatePayloadExistsPipe implements PipeTransform {
  transform(payload: any): any {
    if (!Object.keys(payload).length) {
      throw new BadRequestException('Payload should not be empty');
    }

    return payload;
  }
}