Javascript node.js路由中的URL设计

Javascript node.js路由中的URL设计,javascript,node.js,Javascript,Node.js,我目前正试图弄清楚如何在node.js中重新设计传入的url请求并从中读取参数。我正在使用restify 在my router.js中: server.get('/myDomainName/myService/:location/:userId',myFunction); 我从这里获取“location”和“userId”作为参数,并进行进一步处理 这是完美的工作。但我需要重新设计URL,比如 /myDomainName/myService?location={someLocation}&am

我目前正试图弄清楚如何在node.js中重新设计传入的url请求并从中读取参数。我正在使用restify

在my router.js中:

server.get('/myDomainName/myService/:location/:userId',myFunction);
我从这里获取“location”和“userId”作为参数,并进行进一步处理

这是完美的工作。但我需要重新设计URL,比如

/myDomainName/myService?location={someLocation}&userId={someID}.
因此,我设计了如下URL:

/myDomainName/myService?location=:x&userId=:y
但是当我试图读取x和y的值(
console.log(request.params.x)
)时,它们是未定义的。我需要使用x和y值进行进一步处理

我在URL设计方面做错了什么?我如何实现这一点

提前感谢。

您可以将url设置为:
/myDomainName/myService
并从
req.query.location
req.query.userId


这可能会对您有所帮助:

查询字符串不包括在路由路径中,它在
req.Query
中可用。在设计路由路径时,只需忽略查询字符串。

可能重复感谢回复。理解req.query和req.params之间的区别。不幸的是,它仍然显示未定义。现在我要做的是:server.get('/myDomainName/myService',myFunction);然后当我在浏览器中点击/myDomainName/myService?localtion=bd时。console.log(request.query.location);-->未定义:(您可以打印
req.query
并查看问题出在哪里。它应该可以工作:/n您已经设置了
server.use(restify.queryParser());
?哦!!!这就是问题所在。不,我没有设置。帮助很大。现在它可以工作了。非常感谢:)