Node.js expressjs模式以匹配路径的其余部分
我试图创建一个端点,该端点包含我提取并用作参数的实际路径。例如,在以下路径中: /myapi/function/this/is/the/path 我想将/myapi/function/与我的函数匹配,并将参数this/is/the/path作为参数传递给该函数 如果我尝试这样做,它显然不起作用,因为它只匹配路径的第一个元素:Node.js expressjs模式以匹配路径的其余部分,node.js,express,Node.js,Express,我试图创建一个端点,该端点包含我提取并用作参数的实际路径。例如,在以下路径中: /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/: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"
有什么原因不能对值使用参数字符串吗?在客户端上,您已经知道基本路径是什么,不知道什么,只需使用并传入参数,就可以像req.body.mypath一样使用它,只需确保客户端发送json数据,否则,如果仍要执行正在执行的操作,则需要对值进行编码,并将其作为查询参数app.get/myapi/function?path={encoded value}或类似的内容发送,并且需要在服务器上对其进行解码,因为/i相信无效。