nestjs - 如何更改查询参数的类型?
问题描述
我想将我的查询参数从字符串转换为数字。我使用 dto 技术。
import { IsOptional, IsInt, Min } from 'class-validator';
import { Transform } from 'class-transformer';
export class PaginationDto {
@IsOptional()
@IsInt()
@Transform(val => Number.parseInt(val))
@Min(1)
perPage: number;
在控制器中使用 dto
@Get('/company')
public async getCompanyNews(
@Query() query: PaginationDto
) {
console.log(typeof query.page);
结果:字符串。
如何正确更改类型?
解决方案
为确保 DTO 得到转换,transform: true
必须为ValidationPipe
. 没有它,原始传入对象将在通过验证后传递。
推荐阅读
- javascript - 当我将要呈现的组件分离到另一个页面时,导航不起作用
- excel - 使用 VLOOKUP 在 Excel 中查找部分匹配项
- postgresql - 在 PostgreSQL 中删除临时表?
- java - 如何将不同的注释应用于实体属性?
- python-2.7 - 我收到 SyntaxError | 我正在学习 Python The Hard Way
- python - 在 Django 中使用关键字作为 URL
- python - 尝试在 python 中运行程序时出错
- firebase - Firebase 提供的身份验证凭据无效
- python - 使用轮子时如何处理 C 扩展?
- spring-boot - 从 springBoots `bootJar` gradle 任务中排除特定依赖项