【发布时间】:2019-08-29 12:07:30
【问题描述】:
我想对请求有效负载应用验证,例如,有字符串类型的字段名称。但name不是必填字段,但如果存在则必须执行@IsNotEmpty()
我尝试过这样的事情
@IsNotEmpty() name?: string // 不考虑 ? 可选约束
【问题讨论】:
标签: javascript node.js validation nestjs class-validator
我想对请求有效负载应用验证,例如,有字符串类型的字段名称。但name不是必填字段,但如果存在则必须执行@IsNotEmpty()
我尝试过这样的事情
@IsNotEmpty() name?: string // 不考虑 ? 可选约束
【问题讨论】:
标签: javascript node.js validation nestjs class-validator
class-validator 有一个 @IsOptional() 验证器,您可以将其与您定义的任何其他验证器一起添加:
@IsOptional() @IsNotEmpty() name: string;
装饰器是可交换的,因此验证不依赖于验证器的顺序。如果验证的需要取决于存在以外的其他因素,您可以使用@ValidateIf(),它接受一个函数参数。
【讨论】:
Kim 的回答很棒。如果您想将此行为应用于所有可选字段,您还可以将skipMissingProperties: true 与您的验证管道一起使用。
【讨论】:
您可以使用@IsOptional() 验证器:
检查给定值是否为空(
=== null、=== undefined),如果是,则忽略该属性上的所有验证器。
【讨论】: