express 无法从 url 获取查询参数 [重复]

Posted

技术标签:

【中文标题】express 无法从 url 获取查询参数 [重复]【英文标题】:express can`t get query param from url [duplicate] 【发布时间】: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。这是笔误吗? 【参考方案1】:

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

【讨论】:

这对于 Express 版本 4.16.2 来说是正确的。无论是否使用最后一个正斜杠发送请求,我都可以成功获取查询参数。 @Hkan 编辑了我的答案

以上是关于express 无法从 url 获取查询参数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Angular 2 中的 url 获取查询参数?

从重定向角度 5 中获取查询参数

如何从服务器端 express/mongo/mongoose 中的 URL,客户端的 axios/react/redux 中获取参数 ID

node-express 如何在 URL 查询字符串中传递 DATE 参数以及如何解析它

Angular2获取url查询参数

node.js 与 express 如何从 url 中删除查询字符串