类转换器 @Type() 装饰器不起作用

1 node.js typescript class-validator nestjs class-transformer

我有一个 dto 文件:

export class UpdateUserDto {
  @IsUUID()
  public readonly uuid: string;

  @IsObject()
  @Type(() => UserModelDto)
  public readonly dataToUpdate: UserModelDto;
}
Run Code Online (Sandbox Code Playgroud)

问题是,@Type() 装饰器似乎不起作用。我的 UserModelDto 看起来像这样:

export class UserModelDto {
  @IsUUID()
  @IsOptional()
  public uuid?: string;

  @IsEmail()
  @IsOptional()
  public email?: string;

  @IsString()
  @IsOptional()
  public password?: string;

  @IsJWT()
  @IsOptional()
  public refreshToken?: string;
}
Run Code Online (Sandbox Code Playgroud)

当我向控制器发送请求时,验证对字段不起作用,dataToUpdate但对它uuid有效。我尝试了很多方法但结果仍然相同。

Pap*_*och 6

您需要在选项{ transform: true }中启用ValidationPipe

app.useGlobalPipes(
  new ValidationPipe({
    transform: true,
  }),
);
Run Code Online (Sandbox Code Playgroud)

参考: https: //docs.nestjs.com/techniques/validation#transform-payload-objects

  • 不幸的是没有帮助 (3认同)