0

我正在尝试验证传递的对象是否属于某种类型。

国家对象

class Country {
 code : string;
 name: string;
}

验证码

  @IsNotEmpty()
  @IsNotEmptyObject()
  @IsObject()
  @ValidateNested()
  @Type(() => Country)
  country: Country;

@Type 是从 class-transformer 导入的

这是在堆栈溢出的许多问题中找到的答案。例如:类验证器-验证对象数组。它对我不起作用。这是针对单个对象而不是对象数组。

4

1 回答 1

0

尝试这个:

将以下内容添加到您的控制器:确保已whitelist: true设置为 true。(这将删除不在国家模式定义中的所有内容)

@Post()
createExample(@Body(new ValidationPipe({ whitelist: true })) body: ExampleDto) {
   ...
}

像这样添加您的 DTO

class Country {
   @IsString()
   code : string;

   @IsString() // To make a field optional you can add @IsOptional
   name: string;
}

export class ExampleDto {

   // You do not require IsNotEmpty or because with IsString in Country you force it to be required.
   @ValidateNested()
   @Type(() => Country)
   country: Country;
}
于 2021-12-05T21:46:39.763 回答