Nestjs 如何同时使用ParseIntPipe和Dto?
从查询中我得到limit参数。 如何转换成数字并通过Dto检查Nestjs 如何同时使用ParseIntPipe和Dto?,nestjs,Nestjs,从查询中我得到limit参数。 如何转换成数字并通过Dto检查 @Get('currency/:type') getCurrency( @Param() params: CurrencyTypeDto, @Query('limit', ParseIntPipe) limit: number, @Query() query: PaginationLimitDto ) { 分页限制到 export class PaginationLimitDto { @
@Get('currency/:type')
getCurrency(
@Param() params: CurrencyTypeDto,
@Query('limit', ParseIntPipe) limit: number,
@Query() query: PaginationLimitDto
) {
分页限制到
export class PaginationLimitDto {
@IsOptional()
@IsInt()
limit: number;
}
查询和URL参数总是以字符串对象的形式出现,只是底层引擎如何处理它们。使用DTO,您可以添加
@Transform()
装饰器并执行以下操作
导出类分页限制到{
@等民族()
@IsInt()
@转换(val=>Number.parseInt(val))
限制:数量;
}
然后,在方法处理程序中只需要
@Query()Query:PaginationLimitDto
。Nest的ValidationPipe
将负责为您调用class transformer
和class validator
。通过“按Dto检查”,您的意思是使用Nest的ValdiationPipe
?从字符串转换为int,并通过Dto@transform({value}=>Number.parseInt(value))进行检查
自版本0.3.2以来