我想将当前用户信息从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);
});
});
答案 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
抓取它,您可以进行数据库调用。