【问题标题】:URL design in node.js routingnode.js 路由中的 URL 设计
【发布时间】:2015-02-18 02:35:00
【问题描述】:

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

在我的 router.js 中:

server.get('/myDomainName/myService/:location/:userId',myFunction);

我从这里获取“位置”和“用户 ID”作为参数并进行进一步处理。

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

/myDomainName/myService?location={someLocation}&userId={someID}.

所以,我设计了这样的 URL:

/myDomainName/myService?location=:x&userId=:y

但是当我试图读取 x 和 y (console.log(request.params.x)) 的值时,它们是未定义。我需要使用该 x 和 y 值进行进一步处理。

我在这里为 URL 设计做错了什么?我该如何实现呢?

提前致谢。

【问题讨论】:

标签: javascript node.js


【解决方案1】:

你可以像这样设置网址: /myDomainName/myService 并从req.query.locationreq.query.userId 获取参数

这可能会对您有所帮助:http://expressjs.com/api.html#req.query

【讨论】:

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

查询字符串不包含在路由路径中,它在req.query 中可用。设计路由路径时忽略查询字符串即可。

【讨论】:

    猜你喜欢
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    相关资源
    最近更新 更多