我知道这个话题在这里和这里都提到过,但对我来说并不奏效。
我试图使用req.query
从URL获取参数。 在我的server.js
文件中,我得到了以下内容:
app.get('/reset-pass', function(req,res) {
console.log(req.url);
console.log(req.query);
})
当我输入URL(例如http://localhost:3000/reset-pass?email=anything
)时,服务器控制台输出如下:
/reset-pass
[Object: null prototype] {}
当我从http://localhost:4001/reset-pass
获取时,浏览器控制台输出空对象:
data {
"query": {}
}
如您所见,我在4001
端口上运行我的节点服务器,在3000
上运行客户机站点(因为我在该端口上运行React),它在执行POST
请求或重定向时工作良好,但在GET
情况下,它不返回查询参数。 任何奇怪的#
都不会出现在我的路径中(或者我只是不知道它)。
它有什么问题?
试试看
req.query.email
希望这能解决你的问题
你的代码肯定又出了问题。 因为我和你一样测试了,完全一样的路线。
router.get('/reset-pass', function (req, res) {
console.log(req.url);
console.log(req.query);
res.json({
url: req.url,
query: req.query,
});
});
返回为:
{
"url": "/reset-pass?email=anything",
"query": {
"email": "anything"
}
}
而且没事。 这个操作没有问题。 您应该检查代码的其他部分。