Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nestjs 如何同时使用ParseIntPipe和Dto?_Nestjs - Fatal编程技术网

Nestjs 如何同时使用ParseIntPipe和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 { @

从查询中我得到limit参数。 如何转换成数字并通过Dto检查

  @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以来