显示从节点到角度的当前用户信息

时间:2016-06-01 10:37:41

标签: angularjs node.js

我想将当前用户信息从nodejs显示为angular(view)。

问题在于我不知道如何通过以及如何在节点和角度中获得用户ID

代码:

节点

router.get('/:id/api/data.json', function(req, res, next) {
    console.log(req.params.id);
    var userId = req.params.id;
    User.findById({_id:userId}, function (err, doc) {
        if (err) throw err
        if (doc){
            res.json({
                doc: doc,
                userID:req.params.id
                });
        }
    });
});

Angular:

 app.controller('profileCtrl', function($scope, $http) {
    $http.get("don't know how to get id from node").then(function (response) {
        console.log(response.data);
    });
});

1 个答案:

答案 0 :(得分:1)

您的Node.js路由器正在侦听网址/:id/api/data.json:id部分意味着Node.js期望有一个参数,它将在Node.js文件中由req.params.id获取。

这意味着您实际上必须传递id值作为网址的一部分。所以你的网址看起来像/userid12345/api/data.json

在您的Angular文件中,这是您要发出get请求的网址。这意味着您需要知道Angular文件中的用户ID,以便get该特定网址,例如:

var userId = 'userid12345';

$http.get('/' + userId + '/api/data.json').then(function(response) {
    console.log(response);
});

userId作为网址的一部分传递后,Node可以使用req.params.id抓取它,您可以进行数据库调用。