gpt4 book ai didi

node.js - Nodejs 类验证器验证对象数组

转载 作者:太空宇宙 更新时间:2023-11-03 21:49:03 25 4
gpt4 key购买 nike

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

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

如何使用 class-validator 进行验证这样名称字段是必需的,并且每个对象中的长度至少为 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] 的验证错误。

关于node.js - Nodejs 类验证器验证对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49254339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com