正如文档中提到的
ValidationPipe 可以自动将有效负载转换为根据其 DTO 类键入的对象。要启用自动转换,请将转换设置为 true。
但我总是收到错误请求,因此转换不起作用。
验证DTO
export class CreateDistrictDto {
@IsString()
@IsNotEmpty()
name: string;
// associations
@IsNotEmpty()
@IsNumber()
cityId: number;
}
Run Code Online (Sandbox Code Playgroud)
控制器中的路线
@Post()
async createCity(@Body() cityDto: CreateCityDto) {
return await this.cityService.createCity(cityDto);
}
Run Code Online (Sandbox Code Playgroud)
main.ts(我使用默认的@nestjs/common ValidationPipe)
app.useGlobalPipes(new ValidationPipe({
transform: true,
}));
Run Code Online (Sandbox Code Playgroud)
这个答案说转换不适用于基元,这似乎是正确的。
/sf/answers/4702707831/ https://github.com/nestjs/nest/blob/master/packages/common/pipes/validation.pipe.ts#L137
那么为什么文档另有说法,transform: true 选项的用途是什么?
我可以在下载时没有标题“ Unity webGL”的情况下为没有web徽标的webgl创建游戏吗?。例