簡體   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