如何从Node和Express中的API调用中获取多个参数

时间:2016-05-04 09:43:25

标签: node.js express

在这里需要一些帮助,因为我很遗憾应该非常简单。无论是那个还是我都在失去理智。

好的,所以我使用express.Router()

路由我的路线

我会直接解决问题:

这有效:

apiRouter.get('/api/user/:id', secureAPIPages, function(req, res, next){
    userModel.findOne({'profileID':req.params.id}, function(err, user) {
        if(user){
            res.json({
                fullname:   user.fullname,
                about:      user.about,
                birthday:   user.birthday,
                email:      user.email,
                location:   user.location
            });
        } else {
            console.log('Result does not exist');
       }
    });
})

所以当我在浏览器上拨打电话时: http://localhost:3000/api/user/123456

它获取“id”变量并将其放入req.params中,所以那里都很好。

现在,问题(这就是我想要的工作,上面只是测试我的API路由是否有效):

apiRouter.get('/api/user', secureAPIPages, function(req, res, next){
    userModel.findOne({'profileID':req.params.id}, function(err, user) {
        if(user){
            res.json({
                fullname:   user.fullname,
                about:      user.about,
                birthday:   user.birthday,
                email:      user.email,
                location:   user.location
            });
        } else {
            console.log('Result does not exist');
       }
    });
})

为什么在浏览器上运行此URL时,它不会获取我的“id”和“name”变量: http://localhost:3000/api/user?id=123456789&name=Shayan

一如既往,感谢您的帮助。

砂眼

1 个答案:

答案 0 :(得分:2)

您应该使用查询对象,如下所示:

如果这是网址:

http://localhost:3000/api/user?id=123456789&name=Shayan

使用

req.query.id, req.query.name