У меня есть массив объектов, который выглядит так
[{
name: 'some name'
catId: 2,
}, {
name: 'another name'
catId: 3,
}]
Как я могу проверить с помощью класс-валидатор, чтобы поле имени было обязательным и содержало минимум 2 символа в каждом объекте?
Спасибо





Чтобы проверить массив элементов, вам нужно использовать @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].
как я могу использовать его в контроллере Nest.js?
Мне это помогло stackoverflow.com/questions/58343262/…