当使用plainToInstance
将文字转换为类时,我的验证没有启动。这个转换看起来像plainToInstance()
之后的plainToInstance()
一样有效,但是验证没有显示错误:
import { plainToInstance } from 'class-transformer';
import { IsEmail, validate } from 'class-validator';
class Foo {
@IsEmail()
email: string;
}
(async () => {
const data: Foo[] = plainToInstance(Foo, [{ email: '' }, { email: '1@' }, { email: 'bar@domain.com'}]);
// no errors
let errors = await validate(data); // no errors (errors = [])
console.info(errors);
// this errors
const foo = new Foo();
errors = await validate(foo); // errors (errors Array(1) [ValidationError])
console.info(errors);
})();
我错过了哪一步?
发布于 2022-10-28 22:31:34
validate
似乎不是用来处理类数组的。它没有显示错误,因为数组没有任何与其关联的元数据,这将触发任何验证。
您可能要做的是单独验证每个对象。
let errors = await Promise.all(data.map(d => validate(d)))
https://stackoverflow.com/questions/74240667
复制相似问题