【问题标题】:nodejs class-validator validating array of objectsnodejs类验证器验证对象数组
【发布时间】:2018-08-21 14:25:37
【问题描述】:

我有一个看起来像这样的对象数组

[{
  name: 'some name'
  catId: 2,
}, {
  name: 'another name'
  catId: 3,
}]

如何使用 class-validator 进行验证,以便名称字段是必需的,并且每个对象中至少有 2 个字符?

谢谢

【问题讨论】:

标签: node.js arrays validation class-validator


【解决方案1】:

要验证一组项目,您需要使用@ValidateNested({ each: true })

一个完整的例子:

import { validate, IsString, MinLength, ValidateNested } from 'class-validator';

class MySubClass {
  @IsString()
  @MinLength(2)
  public name: string;

  constructor(name: string ){
    this.name = name;
  }
}

class WrapperClass {
  @ValidateNested({ each: true })
  public list: MySubClass[];

  constructor(list: MySubClass[]) {
    this.list = list;
  }
}

const subClasses = Array(4)
    .fill(null)
    .map(x => new MySubClass('Test'))

subClasses[2].name = null;

const wrapperClass = new WrapperClass(subClasses);
const validationErrors = await validate(wrapperClass);

这将按预期记录subClasses[2] 的验证错误。

【讨论】:

    猜你喜欢
    • 2021-03-09
    • 2022-12-11
    • 2022-01-10
    • 2020-05-07
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    相关资源
    最近更新 更多