提问者:小点点

Express js-无法从url获取查询参数(req.query是空对象)


我知道这个话题在这里和这里都提到过,但对我来说并不奏效。

我试图使用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情况下,它不返回查询参数。 任何奇怪的#都不会出现在我的路径中(或者我只是不知道它)。

它有什么问题?


共2个答案

匿名用户

试试看

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"
    }
}

而且没事。 这个操作没有问题。 您应该检查代码的其他部分。