【问题标题】:express can`t get query param from url [duplicate]express 无法从 url 获取查询参数 [重复]
【发布时间】:2018-10-10 07:38:49
【问题描述】:

我在前端应用程序上使用express 框架和react 来管理节点应用程序上的http 请求。一个有方法:

app.get('/api/matches', async (req, res) =>  {
 console.log(req.originalUrl); // /api/matches/
 console.log(req.query); // {}
 ...

当我使用像http://localhost:3000/matches?id=123 这样的url 时,我希望在req.query 对象中得到id,但我得到的是空的{} 对象。我还尝试检查express 如何使用originUrl 对象查看url,它在没有query ?id=123 的情况下返回。

【问题讨论】:

  • 您使用的是http://localhost:3000/matches?id=123,而不是http://localhost:3000/api/matches?id=123。这是笔误吗?

标签: javascript node.js http express


【解决方案1】:

您需要使用您的网址,例如http://localhost:3000/api/matches/?id=123。注意api这个词。这是因为您的 GET 路由具有 /api/matches,并且请求将查找路径 /api/matches。进行这种更改将对您有用。然后通过该更改,您将能够将req.query 设为{id: 123}

【讨论】:

  • 这对于 Express 版本 4.16.2 来说是正确的。无论是否使用最后一个正斜杠发送请求,我都可以成功获取查询参数。
  • @Hkan 编辑了我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-27
  • 2021-10-10
  • 2021-03-16
  • 2018-05-29
  • 1970-01-01
  • 2020-06-26
  • 2013-04-09
相关资源
最近更新 更多