NestJS – Validation

174次阅读
没有评论
  • whitelist 如果设置了true,
  • forbidNonWhitelisted
  • ?status= 等于 === ''
  • ?status= 等于 === ''
  • ? 等于 === undefined

@Type(() => Number)

status = 0了。

如果该字段的值不会出现null和undefined

skipMissingProperties如果设置为true,在调用接口时不传递该字段,就会跳过检查。

两极分化:

  • 查询时:查询条件是可选的
  • 新增是:大多数字段都是必填项

为什么?

export class queryUserCouponDto extends ApiPageOptionsDto {
  @ApiProperty({
    description: '使用状态',
  })
  @Transform((o) => {
    return isNumberString(o.value) ? toNumber(o.value) : o.value;
  })
  @IsNumber()
  @IsOptional()
  status: number;
}

因为status在数据库中存放的类型就是In,数字类型,1,2,3,三种状态。

由于Get请求地址栏只能输入字符串的原因,所以在stauts=有效的数字字符串(numberString)时才会去转换成数字类型。如果status=”,空字符,也进行转换的话,那么status===0,’0’才能转换成 数字零,”,空字符”就时查字符串,当参数没有带上status时,才会在查询数据库时,不带上status条件

IsOptional 与 Allow的区别?

装饰器执行顺序

@Type => @Transform => @ValidateIf => 其他

正文完
 
wujingquan
版权声明:本站原创文章,由 wujingquan 2023-12-26发表,共计690字。
转载说明:Unless otherwise specified, all articles are published by cc-4.0 protocol. Please indicate the source of reprint.
评论(没有评论)