我有一个代码,其中在main.ts
文件中应用了全局验证管道,如下所示:
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.enableCors();
// Enable global validation pipe
app.useGlobalPipes(new ValidationPipe({
whitelist: true
}));
}
现在在我的一个控制器中,我想像这样的补丁请求中跳过DTO的某些属性
@Patch(':id')
// Override the pipes
@UsePipes(new ValidationPipe({
skipMissingProperties: true,
}))
updateProject(@Param('id') accountId: string, @Body() dataToUpdate: UpdateProjectDTO) {
return dataToUpdate;
}
这是我的DTO:
export class UpdateProjectDTO {
@IsNotEmpty()
projectType: string;
@IsNotEmpty()
projectDescription: string;
}
如果projectDescription
没有作为请求的一部分提交,我想忽略它。但是在这种情况下,我的全局管道具有优先权,而其属性中没有定义skipMissingProperties
。是否有解决方案来覆盖全局管道?
答案 0 :(得分:0)
将您的装饰器从 @IsOptional()
更改为 @IsNotEmpty()