ExpressJS将变量传递给Angular

时间:2016-12-04 13:58:45

标签: angularjs node.js steam-web-api

我有一些JSON形式的文本,我可以使用我用ExpressJS / nodeJS编写的服务器从Steam的Web API中获取。此JSON存储在变量中。

我在这里要做的是基本上把我存储在变量中的JSON,发送到我的Angular,然后将数据显示在我的页面上。

当我这样做时,我的控制台会显示页面的原始HTML。

我有什么遗失的东西吗?

我的节点:

app.get('/steam.html', function(req, res){
  request.get(steam_api, function(error, steamResponse, steamBody) {

    var steamList = JSON.parse(steamBody);
    gameList = steamList["applist"]["apps"]; 

    res.json({gl: gameList});  

  });
});

我的角度:

$http.get('steam.html').success(function(data){
    $scope.gameList = data;
    console.log(data);
  });

我的steam.html

<body ng-app="gameSearch" ng-controller="gameSearchController">
    <p>{{title}}</p>
    <ul ng-repeat="steam in gameList track by $index">
        <li>{{steam.name}}</li>
    </ul>
</body>

编辑:如果有帮助的话,这就是我所看到的截图。正如你将看到的那样,我得到了一堆子弹点而不是每个游戏的名字。

Express JS passes bullet points

编辑2:为清楚起见,我应该添加的另一件事是我使用了一些我在codepen的博客帖子中找到的nodeJS代码,如下所示(https://codepen.io/johnchristopherjones/post/how-do-i-use-the-steam-api-in-my-web-app):

app.get('/steam/game/:appid/achievements', function(httpRequest, httpResponse) {
    // Calculate the Steam API URL we want to use
    var url = 'http://api.steampowered.com/ISteamUserStats/GetSchemaForGame/' +
        'v2/?key=YOURSTEAMAPIKEYHERE&appid=' +
        httpRequest.params.appid;
    request.get(url, function(error, steamHttpResponse, steamHttpBody) {
        httpResponse.setHeader('Content-Type', 'application/json');
        httpResponse.send(steamHttpBody);
    });
});

1 个答案:

答案 0 :(得分:0)

因为有一段时间没有对这个问题进行更新,我想我会告诉你我最后做的事情。在我的节点中,我最终从Steam Web API中获取JSON并将其保存在JSON文件中。

在Angular中,我在该JSON文件上执行了$ http.get,然后使用ng-href指令构建了我的链接。