首页 > 解决方案 > 在 Express POST 路由中访问 URL 查询参数

问题描述

我有一个 NodeJS/Express 应用程序。

从标题为:localhost:3000/form?someProp=someValue&somethingElse=someOtherValue

此页面将表单提交到另一个 Express 端点。

我提交到 Express POST 端点。我知道在 GET 端点中我可以通过 访问查询参数req.query,但我似乎无法在 POST 请求中这样做。

有没有办法从 POST 路由中的请求访问查询参数?(除了拼接 header.referrer ......我可能只需要这样做)

以下是一些代码片段:

如果我提交给第一个路线它可以工作,如果我提交给第二个......它不会。

router.get('/test',
  (req, res) => {
    console.log(req.query); // {someProp: someValue, somethingElse: someOtherValue }
  }
);

router.post('/test2',
  (req, res) => {
    console.log(req.query); // returns {}
  }
);

标签: node.jsexpress

解决方案


所以我尝试发送一个简单的请求来测试它并让一切正常工作而不做任何特别的事情(我唯一额外的事情是我正在使用来自 npm 的 body-parser 中间件):

app.use(bodyParser.json({limit: '50mb'}));

然后我尝试了这条简单的路线并获得了结果查询参数,如您在附图中所见。

http://localhost:8080/test?test=1&what=2

在此处输入图像描述

您是否有机会以不同的方式从客户端发送其他表单请求?尝试在 chrome 中查看网络,看看您是否发送了您期望的内容。显然,这里缺少一些东西,因为它对我有用而没有做任何特别的事情。


推荐阅读