繁体   English   中英

Nest.js 多个同名查询参数

[英]Nest.js Multiple Query Parameters with Same Name

控制器

@Get(')
test(
    @Param('accountId') accountId: string,
    @Query('propertyName') propertyNames: string[],
) {
    console.log(propertyNames);
}

示例请求localhost:8000?propertyName=test2&propertyName=test3

输出:

[ 'test2', 'test3' ]

当我有多个值时,这很好用,但是当只发送一个参数时,它会创建一个字符串而不是一个数组

请求: localhost:8000?propertyName=test3生成输出: test3而不是[test3]

我目前的方法是使用(根据https://stackoverflow.com/a/4775737/5236575

propertyName = [].concat(propertyName)

以确保该值是一个数组。

有没有办法强制 Nest.js 始终将查询参数解析为字符串数组,因为这在控制器的多个位置都是必需的。


注意:ValdiationPipe: transform设置为true

app.useGlobalPipes(new ValidationPipe({ whitelist: true, transform: true }));

在我的脑海中,您可以使用class-transformer @Transform装饰器来实现这一点。 您可以在该装饰器的帮助下移动将单个字符串参数转换为数组的逻辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM