Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js expressjs模式以匹配路径的其余部分_Node.js_Express - Fatal编程技术网

Node.js expressjs模式以匹配路径的其余部分

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,

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

/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"

有什么原因不能对值使用参数字符串吗?在客户端上,您已经知道基本路径是什么,不知道什么,只需使用并传入参数,就可以像req.body.mypath一样使用它,只需确保客户端发送json数据,否则,如果仍要执行正在执行的操作,则需要对值进行编码,并将其作为查询参数app.get/myapi/function?path={encoded value}或类似的内容发送,并且需要在服务器上对其进行解码,因为/i相信无效。