如何使用类验证器验证 URL 数组?

D_G*_*mer 3 dto typescript class-validator nestjs

我正在使用 Class-Validator 来验证 Nest.js 应用程序的 DTO 属性。在那里我有一个属性“images”,它是一个字符串数组,这些字符串是 URL。因此,我想验证该数组中的每个 URL。


class SomeDto {
// ...
       
// Array of Urls
@IsArray()
@IsUrl({each:true})
images: string[];

// ...
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。有谁知道如何验证这个 URL 数组。

Chr*_*Kao 7

第一个参数的类型IsUrl不是通常的ValidationOptions类型。

您可以检查其签名:

export declare function IsUrl(options?: ValidatorJS.IsURLOptions, validationOptions?: ValidationOptions): PropertyDecorator;
Run Code Online (Sandbox Code Playgroud)

{ each: true }所以,尝试在第二位通过,它就会起作用。

class SomeDto {
// ...
       
// Array of Urls
@IsArray()
@IsUrl({}, { each: true })
images: string[];

// ...
}
Run Code Online (Sandbox Code Playgroud)