node.js - 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/*")
此外,似乎不鼓励使用通配符路由作为不好的做法。我不确定我是否理解链接文章试图建议的替代方案,并且我没有将查询用作数据库调用的一部分,也没有上传任何信息。
这样做的正确方法是什么?
解决方案
您可以使用通配符
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"
推荐阅读
- node.js - 在 Sequelize 和 postgres 中插入和获取 JSON 数据
- ruby - rubyzip:打开 zip,临时修改,发送给客户端
- javascript - Highcharts 列(最小,最大)颜色
- python - 有没有办法用python在意大利语句子中引入标点符号?
- json - 如何通过对没有 STRING_AGG 的不同列进行分组来创建 JSON 列(SQL Server)
- javascript - 创建一个链接以下载文件
- python-3.x - 如何抓取自动完成?
- php - 我不知道为什么我无法连接到我的数据库
- mysql - Mysql - 使用大型相互依赖表(连接表)插入更新的最快方法
- django - Django + React:如何连接它们进行部署?