Json在nodeJs和AngularJs中返回undefined

时间:2015-03-18 19:11:05

标签: javascript json angularjs node.js

我有一个应用程序可以调用api并显示有关该信息的数据:首先,它从客户端的输入中获取用户名并将其发布到服务器。在这一步中,如果我检查数据是否已经发送到服务器,一切似乎都很好。

AngularJs part:

var app=angular.module("app",[])

app.controller("InfoController",['$scope','$log','$http','$filter',function($scope,$log,$http,$filter){ 

    $scope.info = {
        summonerName: '',
    };

    $scope.info.onClick = function(){
        $scope.info.summonerName = $scope.info.summonerNameBox;

        $http.post('/api/getSummonerName', $scope.info);

    $http.get('/api/summonerData')
        .success(function(data, status){
        $scope.info.display = data;
    }).error(function(data,status){
        alert("Error: " + status);  
    });
    };
}])

的NodeJS:

var summonerName;
var summonerId = '';

app.post('/api/getSummonerName', function (req, res){
    summonerName = req.body.summonerName;
    console.log("Post getSummonerName " + summonerName);
});

app.get('/api/summonerData', function(req,res){
    LolApi.Summoner.getByName(summonerName, function(err, summoner) {
        if(!err) {
            res.json(summoner);
            summonerId = req.body.summoner;
            console.log(summonerId);
            if(err)
                res.send(err)
        }
    })
});

当我在服务器中有这些数据时,我打电话给api获取该用户的信息,一切都很顺利。

当我想要存储来自此json的特定字段时,问题就出现了。当我想将它存储在一个变量中时,我得到的一切都是“未定义的”:/(一旦我获得了“[Object object]”,但又无法获得它了......)

有什么想法吗?

谢谢大家。

1 个答案:

答案 0 :(得分:0)

在我看来,这不是你应该这样做的方式。

如果你想要召唤召唤师,你需要使用get方法。 特别是如果你正在与多个用户打交道。

您可能希望在此答案中指定的get请求中传递数据,并抛弃帖子请求: AngularJS passing data to $http.get request

这样,你就不依赖于记忆,你可以模块化它:)