首页 > 解决方案 > expressjs 模式以匹配路径的其余部分

问题描述

我正在尝试创建一个端点,其中包含我提取并用作参数的实际路径。例如,在以下路径中:

/myapi/function/this/is/the/path

我想将“/myapi/function/”与我的函数匹配,并将参数“this/is/the/path”作为参数传递给该函数。

如果我尝试这个,它显然不起作用,因为它只匹配路径的第一个元素:

app.get("/myapi/function/:mypath")

如果我尝试这个它可以工作,但它没有出现在 中req.params,我不得不解析req.path这是混乱的,因为逻辑必须知道整个路径,而不仅仅是参数:

app.get("/myapi/function/*")

此外,似乎不鼓励使用通配符路由作为不好的做法。我不确定我是否理解链接文章试图建议的替代方案,并且我没有将查询用作数据库调用的一部分,也没有上传任何信息。

这样做的正确方法是什么?

标签: node.jsexpress

解决方案


您可以使用通配符

app.get("/myapi/function/*")

然后得到你的路径

req.params[0]

// Example
//
// For the route "/myapi/function/this/is/my/path"
// You will get output "this/is/my/path"

推荐阅读