Mik*_*lis 8 typescript class-validator nestjs
ValidationPipe我使用带有选项的全局{ transform: true, whitelist: true }。但是,在特定的控制器请求中,我想重用相同的类但具有不同的验证,应用类验证器的验证组技术。因此,我有必要覆盖管道的选项以应用新选项。
这是在 NestJS 6.2.4 上。我尝试在 处应用新管道@Query(new ValidationPipe({groups: ['res']})),但全局管道仍然应用。我应用了相同的逻辑,@UsePipes()但再次应用了全局管道。
另外,我尝试将always: false属性与组一起应用,以避免始终验证属性,但由于这是默认行为,因此没有太大帮助。
@IsNumberString({ groups: ['res'] })
resId: number;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我建议在控制器内的方法级别添加ValidationPipe,而不是在控制器级别添加。
像这样的东西:
@Controller('users')
export class UsersController {
constructor(
private readonly usersService: UsersService
) {
}
@Post()
@UsePipes(new ValidationPipe({
forbidUnknownValues: true,
transform: true
}))
async create(@Body() createUserDtoReq: CreateUserRequestDto): Promise<UserResponseDto> {
return await this.usersService.create(createUserDtoReq);
}
}
Run Code Online (Sandbox Code Playgroud)
不过其他人可能会添加其他建议。
| 归档时间: |
|
| 查看次数: |
4362 次 |
| 最近记录: |