[英]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.