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