Rev*_*ddh 11 javascript validation node.js class-validator nestjs
我想对请求有效负载应用验证,例如有字符串类型的字段名称。但名称不是必填字段,但如果存在,则必须执行@IsNotEmpty()
我试过这样的事情
@IsNotEmpty() name?: string//它不考虑?可选约束
您可以使用@ValidateIf条件验证,如果函数返回,这将运行其他验证true
example:在这种情况下,如果o.otherProperty === 'value'euqaltrue则将@IsNotEmpty运行,否则将不会运行
export class Post {
otherProperty: string;
@ValidateIf(o => o.otherProperty === 'value')
@IsNotEmpty()
example: string;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
class-validator有一个@IsOptional()验证器,您可以将它与您定义的任何其他验证器一起添加,如下所示:
@IsOptional() @IsNotEmpty() name: string;
Run Code Online (Sandbox Code Playgroud)
装饰器是可交换的,因此验证不依赖于验证器的顺序。如果需要验证取决于存在以外的其他东西,您可以使用@ValidateIf()which 接受函数参数。