将快速查询与路由分离

时间:2021-07-21 22:05:17

标签: javascript api express

我正在尝试创建一条快速路由,该路由基本上允许我通过将 ?symbol= 放在 URL 上来输入股权名称作为查询。在股权名称之后,我想添加一个新的路由。

const express = require("express")
const app = express()

app.get("/api/v1/equity/latest", (req, res) => {
    res.send(req.query)
})

app.listen (3000, () => {
    console.log("listening to port 3000")
})

当我将 URL 设为 localhost:3000/api/v1/equity?symbol=BBNI/latest/ 然后查看收到的查询时,它收到的地址为 symbol = BBNI/latest/

如何将符号查询与下一个 /latest 路由分开?

2 个答案:

答案 0 :(得分:0)

这是一个奇怪的 URL 模式,因为如果任何开发人员看到这个 URL:

/v1/equity?symbol=BBNI/latest/

暗示symbol参数确实是BBNI/latest/而不仅仅是BBNI

但是,如果您想“分离”这些部分,您可以这样做:

const [symbol, latest] = req.query.symbol.split('/', 2);

但您可能应该设计一个更好的 URL 结构。

答案 1 :(得分:0)

我认为这不是一个好方法。

请试试这个。

const express = require("express")
const app = express()

app.get("/api/v1/equity/:symbol/latest", (req, res) => {
    res.send(req.params.symbol)
})

app.listen (3000, () => {
    console.log("listening to port 3000")
})