📌  相关文章
📜  class-validator 验证嵌套对象 - TypeScript (1)

📅  最后修改于: 2023-12-03 14:59:56.423000             🧑  作者: Mango

class-validator 验证嵌套对象 - TypeScript

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 可以大大简化验证逻辑,提高代码的可读性和可维护性。