typescript Nestjs:当使用DTO和whitelist = true发布multipart/form-data时,为空body

bttbmeg0  于 2023-08-07  发布在  TypeScript
关注(0)|答案(1)|浏览(154)

我用multipart/form-data创建了一个POST

@UseInterceptors(FileInterceptor('file'))
@Post('upload')
@ApiConsumes('multipart/form-data')
uploadFile(@Body() body: FileDto, @UploadedFile() file: Express.Multer.File) {
  console.log('body: ', body)

  return 'uploaded'
}

字符串
FileDto:

export class FileDto {
  @ApiProperty()
  name: string

  @ApiProperty({ type: 'string', format: 'binary' })
  file: any
}

console.log

whitelist: truebody: {}的值。
whitelist: falsebody: { name: 'some name' }
Swagger :

使用class-validator进行的pipe验证似乎无法使用multipart/form-data进行
我该怎么补救?

l0oc07j2

l0oc07j21#

使用whitelist: true,class-validator从有效负载中剥离未知值。由于您的FileDto没有class-validator装饰器,因此name被正确剥离。添加@Allow()或class-valdiator验证装饰器来保留属性。

相关问题