📅  最后修改于: 2023-12-03 14:59:56.423000             🧑  作者: Mango
class-validator 是一个 TypeScript 的类验证器,它可以在运行时验证对象是否符合指定的验证规则。在处理嵌套的对象时,可以使用 class-validator 来验证嵌套的对象是否符合要求。
使用 npm 进行安装:
npm install class-validator
假设我们有如下数据结构:
class Address {
@IsNotEmpty()
street: string;
@IsNotEmpty()
city: string;
@IsNotEmpty()
state: string;
@IsNotEmpty()
zip: string;
}
class User {
@IsNotEmpty()
name: string;
@IsNotEmpty()
email: string;
@IsNotEmpty()
@IsPhoneNumber('US')
phone: string;
@ValidateNested()
address: Address;
}
其中,Address 是嵌套在 User 中的对象。我们希望在验证 User 时,也能够验证 Address 是否符合要求。可以看到,我们使用了 @ValidateNested()
来标记 Address 属性,让 class-validator 知道它是一个嵌套的对象并需要进行验证。
下面是一个示例代码:
const user = new User();
user.name = 'John Doe';
user.email = 'john.doe@example.com';
user.phone = '1234567890';
const address = new Address();
address.street = '123 Main St';
address.city = 'Anytown';
address.state = 'CA';
address.zip = '12345';
user.address = address;
const errors = await validate(user);
if (errors.length > 0) {
console.log(errors);
} else {
console.log('User is valid');
}
通过使用 class-validator 可以方便地验证嵌套的对象。只需要使用 @ValidateNested()
标记嵌套的属性即可。使用 class-validator 可以大大简化验证逻辑,提高代码的可读性和可维护性。