ValidationPipe 在正文中使用 DTO 时抱怨空字段

问题描述 投票:0回答:1

我正在尝试对我的项目的 API 请求实施验证,如下所示: https://docs.nestjs.com/techniques/validation

它似乎有效,因为当我省略字段时,我会收到适当的错误消息。只是当我不把它们排除在外时它也会抱怨。以下是我的端点代码:

@Post('heatMap')
async getOrCreateHeatMap(@Body() heatMap: HeatMapGetOrCreate) {
    const getHeatMap = await this.graphService.getHeatMapByFields(heatMap);
    if (getHeatMap) {
        return getHeatMap;
    } else {
        // return this.graphService.createHeatMap(name, complexity, repositoryId);
    }
}

这是我正在使用的DTO类:

export class HeatMapGetOrCreate {
    @IsNotEmpty()
    name!: string;
    @IsNotEmpty()
    complexity!: number;
    @IsNotEmpty()
    repositoryId!: string;
}

我认为这可能不是验证的问题,而是我如何做

@Body
部分的问题。我想要做的事情是可能的还是我需要单独定义每个字段?

javascript typescript nestjs
1个回答
0
投票

愚蠢的错误。我使用邮递员并将请求作为表单数据而不是 json 发布。

© www.soinside.com 2019 - 2024. All rights reserved.