node.js - 如何在 NestJS 中使用可選的 URL 參數
我正在嘗試使用 Nestjs 庫來替換我們目前的後端服務,但我想在 URL 中創建一個帶有 2 個可選參數的路由,類似這樣:
/route/:param1/config/:OptionalParam3?/:OptionalParam3?
那表示路由應該捕捉:
route/aa/configroute/aa/config/bbroute/aa/config/bb/cc
我該如何實現這個,我已經嘗試使用 ? 和 (),但效果不太好。
答案#1
如果你正在尋找如何標註一個可選的查詢參數,你可以這樣做:
@ApiQuery({
name: "myParam",
type: String,
description: "A parameter. Optional",
required: false
})
async myEndpoint(
@Query("myParam") myParam?: string
): Promise<blah> {
[...]
}
答案#2
路由器參數名稱應該是唯一的。正確的路由路徑是:
現有的是:
/route/:param1/config/:OptionalParam3?/:OptionalParam3?
更正:
/route/:param1/config/:OptionalParam3?/:OptionalParam4?
意見:如果查詢參數是可選的,你可以使用。建立可選參數路由從來不是好主意(雙方同意分歧)。兩者功能相同,但將它們作為查詢參數,讓除錯和其他開發者更容易理解。
