Javascript 节点JS-Express.JS获取多参数查询

Javascript 节点JS-Express.JS获取多参数查询,javascript,node.js,express,Javascript,Node.js,Express,我对JavaScript和Node JS非常陌生,我遇到过这样的情况。当我尝试使用单个参数调用express.js的get时,一切正常,但当我尝试使用多个参数调用get时,它会修剪查询。 例如,我有这样的调用和函数 app.get('path/data', myFunc); // in another file function myFunc(req, res) { // do some stuff } 当url为path/data?id=5或path/data?name=foo时,一

我对JavaScript和Node JS非常陌生,我遇到过这样的情况。当我尝试使用单个参数调用
express.js的
get
时,一切正常,但当我尝试使用多个参数调用
get
时,它会修剪查询。 例如,我有这样的调用和函数

app.get('path/data', myFunc);
// in another file
function myFunc(req, res) {
    // do some stuff
}
当url为
path/data?id=5
path/data?name=foo
时,一切正常。但当我在myFunc中使用类似于
path/data?id=5&name=foo
的url时,我得到的url是
path/data?id=5
。所以我得到了url的第一部分-在
&
符号之前是什么


现在我做错了什么?有什么我遗漏的吗?如何在
myFunc
中获取整个url而不进行修剪?

我发现了问题。我是通过
curl
请求的,结果发现,如果url中有
&
,shell命令会进行修剪。因此,不需要像这样添加引号

curl "path/data?id=5&name=foo"
使用

对于检索值,使用
req.query.id
req.query.name

要访问REST api,您需要点击:

因此,通过这种方式,您可以在api中添加多个参数


希望这有帮助。

您是否使用了
req.query
?您最有可能使用的是
req.params
。我用
req.query
测试了您的程序,它运行得非常好。我正在记录
req.query
,它显示了
{id:“5”}
,而与
名称无关。然后它就不是相同的路由;)使用这些问号没有什么区别,它们既不过滤也不拒绝虚假的标题。问题其实是卷曲。试试浏览器和卷曲。这个解决方案在浏览器中运行良好。没有问题,对。在浏览器中尝试,没有问题。说明书上也说你是对的。
app.get('path/data?:id?:name')