NestJs验证管道不返回任何消息

NestJs验证管道不返回任何消息,nestjs,class-validator,Nestjs,Class Validator,在NestJs中,我不知道如何从ValidationPipe获取validaiton错误消息。始终发送不包含如下“消息”参数的一般响应: { “状态代码”:400, “时间戳”:“2021-05-22T09:59:27.708Z”, “路径”:“/批处理” } 在main.ts中,我给出了管道定义 app.useGlobalPipes(新的ValidationPipe()); 这是我的dto 导出类BatchCreateDto{ @ApiProperty() @IsNotEmpty({消息:

在NestJs中,我不知道如何从ValidationPipe获取validaiton错误消息。始终发送不包含如下“消息”参数的一般响应:

{
“状态代码”:400,
“时间戳”:“2021-05-22T09:59:27.708Z”,
“路径”:“/批处理”
}
在main.ts中,我给出了管道定义

app.useGlobalPipes(新的ValidationPipe());
这是我的dto

导出类BatchCreateDto{
@ApiProperty()
@IsNotEmpty({消息:'用户名是必需的'})
代码:字符串;
@ApiProperty({type:Lang})
标题:郎,;
@ApiProperty({type:Lang})
描述:朗;
@ApiProperty()
开始日期:日期;
@ApiProperty()
持续时间:小时数;
}
如果我向api发送带有emty“code”字段的数据,api将返回不包含消息参数的一般错误请求响应。如果“code”字段包含任何数据,则api将对象插入数据库是没有问题的。所以我理解验证管道是有效的,但是如果验证失败,为什么不返回任何详细的消息呢。 我想获取包含“username is required”或任何通用消息之类的消息参数。谢谢你的帮助

更新 导致错误的请求主体

{
“代码”:“,
“标题”:{
“en”:“这是测试”,
“tr”:“bu TESTIR”
},
“说明”:{
“恩”:“一些解释……”,
“tr”:“巴扎·卡拉马拉……”
},
“开工日期”:“2021-05-24T07:51:03.197Z”,
“持续时间9小时”:14
}
BatchController使用BatchCreateDto

从'@nestjs/common'导入{Body,Controller,Delete,Get,Param,Post,Put,Query,usepippes,ValidationPipe};
从“../services/batch.service”导入{BatchService};
从'@nestjs/swagger'导入{ApiBody,ApiTags};
从'src/entities/dto/batch.create.dto'导入{BatchCreateDto};
@ApiTags(‘批处理’)
@控制器(“批处理”)
导出类批处理控制器{
构造函数(私有batchService:batchService){}
@Post()
公共异步addBatch(@Body()批处理:BatchCreateDto){
const result=wait this.batchService.add(batch);
返回结果;
}
}

能否发布复制此错误的请求正文?能否将BatchCreateDto的导入语句显示在您使用它的位置?Hi@SPS和Eranga Heshan。谢谢你的回复。我刚刚更新了我的问题。您的请求不再在其中。@ZiyaSarı在返回响应(拦截器、防护、管道或过滤器)之前检查是否有任何更改响应。由于验证失败的错误响应是一个消息数组,您可能还需要在返回数组中添加一个案例。非常感谢@Isolated。在main.ts中,行
app.useGlobalFilters(新的HttpExceptionFilter())
导致问题。