小编Iho*_*hor的帖子

如何使用 Nest.js 中的类验证器验证数组中每个对象的字段

import { ArrayMaxSize, ArrayMinSize, IsArray, IsBoolean, IsString, ValidateNested } from "class-validator";
import { Transform, Type } from "class-transformer";

class CreateAnswerDto {
  @IsBoolean()
  readonly isTrue: string;

  @IsString()
  title: string;

  @IsString()
  description: string;
}

const transformAnswers = answers => {
  return JSON.parse(answers.value);
};

export class CreateQuestionDto {
  @Transform(transformAnswers, { toClassOnly: true })
  @IsArray()
  @ArrayMinSize(4)
  @ArrayMaxSize(4)
  @ValidateNested({ each: true })
  @Type(() => CreateAnswerDto)
  readonly answers: CreateAnswerDto[];

  @IsString()
  readonly title: string;
}
Run Code Online (Sandbox Code Playgroud)

所以我有相同的代码,并且我想验证答案中的每个对象字段,但此代码不起作用。如果我发送了错误的数据,则此验证会跳过它。我怎样才能正确验证我的答案?

谢谢你的帮助!

javascript validation node.js class-validator nestjs

2
推荐指数
1
解决办法
3677
查看次数