我正在尝试使用内置 NestJS ValidationPipe 将一些查询参数从字符串转换为整数,但它似乎无法正常工作,
这是我的控制器:
import {
..., ValidationPipe
} from '@nestjs/common';
...
@UseGuards(JwtAuthGuard)
@Get()
findAll(@Req() req, @Query(new ValidationPipe({
transform: true,
transformOptions: { enableImplicitConversion: true },
forbidNonWhitelisted: true,
})) query: GetTestDto) {
return this.testService.findAll(query, req.user.id);
}
Run Code Online (Sandbox Code Playgroud)
这是我的 DTO :
import { IsInt, IsOptional, IsString } from 'class-validator';
import { Transform } from 'class-transformer';
export class GetTestDto {
@IsOptional()
@IsString()
public search: string;
@IsOptional()
@Transform(({value}) => {
console.log(typeof value); // => string / I'm just testing here
return value
})
@IsInt() …Run Code Online (Sandbox Code Playgroud)