小编Dan*_*ikh的帖子

Nestjs ValidationPipe({transform: true}) 不会将请求正文的字符串转换为数字

正如文档中提到的

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 选项的用途是什么?

dto class-validator nestjs class-transformer

6
推荐指数
2
解决办法
8078
查看次数

我可以为没有Unity徽标的webgl创建游戏吗?

我可以在下载时没有标题“ Unity webGL”的情况下为没有web徽标的webgl创建游戏吗?。

unity-game-engine unity-webgl

1
推荐指数
1
解决办法
2347
查看次数