class-validator:验证数值的位数

class-validator: validate number of digits for numeric values

我正在尝试使用 class-validator 验证数值的位数。例如:对于给定的 属性,我的实体只能接受 6 位数字。这样

const user1 = new User();
user1.code = 123456 // should be valid

const user2 = new User();
user2.code = 12345 // should be invalid

const user3 = new User();
user2.code = 1234567 // should be invalid

我试过结合使用 IsNumber、MinLength 和 MaxLength;但没有用。

class User {
    @IsPositive()
    @IsNotEmpty()
    @IsNumber({ maxDecimalPlaces: 0 })
    @MinLength(6)
    @MaxLength(6)
    public code: number;
}  

我收到一条消息说 code must be shorter than or equal to 6 characters

谁能帮帮我?

MinLength 和 MaxLength 用于检查字符串的长度,而您使用的 属性 是一个数字。 我建议改用 Min 和 Max 来检查它是否是六位数字。 (@Min(100000) 和@Max(999999) 应该这样做)