使用Express检索多个GET参数

时间:2016-06-03 13:13:21

标签: node.js express

我尝试使用Express检索多个GET参数,但req.params始终为空。我不完全确定如何使用Express 4正确地做到这一点,因为答案变化很大,因为我认为Express / Node.js的新版本发生了很大变化。

这是我的网址:

http://localhost:3000/accounts/players?term=asddsa&_type=query&q=asddsa

http状态代码实际上是200,因此该地址实际存在。

这是我的路由器:

router.get('/players', function(req, res) {
    var searchTerm = req.term;
    console.log("Term: " + JSON.stringify(req.params));
    res.json({"result": "Account deleted"});
});

控制台日志输出为:

Term: {}

我尝试了不同的内容,例如:

router.get('/players/:term/:_type/:q', function(req, res) {

但这导致了GET请求的404.

2 个答案:

答案 0 :(得分:5)

在'?'之后输入url参数正如你所做的那样 - 参数将在req.query而不是req.params下,如下所示:

router.get('/players', function(req, res) {
    var searchTerm = req.term;
    console.log("Term: " + JSON.stringify(req.query));
    res.json({"result": "Account deleted"});
});

如果您想使用params - 您的网址应如下所示:

http://localhost:3000/accounts/players/asddsa/query/asddsa

路由器功能可以按照您的尝试编写:

router.get('/players/:term/:_type/:q', function(req, res) {

答案 1 :(得分:1)

希望有所帮助

router.get('/players', function(req, res) {

    console.log(req.query) // should return the query string

    var searchTerm = req.term;
    console.log("Term: " + JSON.stringify(req.params));
    res.json({"result": "Account deleted"});
});