2016-03-01 45 views
0
//Express 
var express = require('express'); 
var server = express(); 

//Steam 
var SteamWebAPI = require('steamwebapi').SteamWebAPI; 
SteamWebAPI.setAPIKey('XXXXXXXXXXXXXXXXXXXXXXXXXXXX'); 

//Steam - Recently Played Games 
server.get('/games', function (req, res) { 
    SteamWebAPI.getRecentlyPlayedGames('76561198190043289', 5, function(response) { 
     res.json(response.response.games); 
    }); 
}); 

//Localhost 
server.listen(3000, function() { 
    console.log('Server: '); 
}); 

显示的console.log结果这是我的输出:如何从API请求

[{"appid":730,"name":"Counter-Strike: Global Offensive","playtime_2weeks":620,"playtime_forever":4016,"img_icon_url":"69f7ebe2735c366c65c0b33dae00e12dc40edbe4","img_logo_url":"d0595ff02f5c79fd19b06f4d6165c3fda2372820"}] 

好吧,如果你去的网站:https://steamid.io/,你输入你的名字,按下按钮“查找”,并你得到你的ID。我如何做到这一点?是否有可能让该用户输入他的姓名/身份证,并获得信息。这样我只有一个人可以进入用户,他可以根据他的要求获取文本和图像。

像,我最近学到了很多关于Steam Web Api的知识,但是我仍然没有想出如何显示数据。一些很酷的人帮助了我,但是我们使用了Angular,但我仍然不熟悉它,现在我打算学习Ember.js,但是他们有什么其他选择吗?

回答

0

如果你想做你的榜样,看起来你错过了前面的部分,还有一些后端。

第一个您必须创建一个表单。在你的情况下,只需要一个输入来询问用户ID和一个提交按钮就足够了。然后你创建的形式在HTML文件中,与渲染功能渲染它给快报框架(http://expressjs.com/en/4x/api.html#app.render

和HTML表单(http://www.w3schools.com/html/html_forms.asp

在光提醒,但你必须渲染它,到特定的URL,例如

// Render your basic form 
    // The form is in the form.html file 
    // By default, views have to be placed into the view or views folder, I don't know exactly no more 
    server.get('/ask_user_id', function (req, res) { 
     app.render('form', function(err, html){ 
      if(err) return res.send(err); 
      else return res.send(html)    
     }); 
    }); 

所以,如果你去上你的localhost:3000/ask_user_id形式将呈现

当用户把它的ID写入你的输入并提交表单,你必须检索这些信息,然后调用你的API。因此,如果您的表单的操作是POST,并且要提交的网址是/user_infos,并且用户标识名称的输入是userId,则此处为代码。

// Render your basic form 
    // The form is in the form.html file 
    // By default, views have to be placed into the view or views folder, I don't know exactly no more 
    server.get('/ask_user_id', function (req, res) { 
     app.render('form', function(err, html){ 
      if(err) return res.send(err); 
      else return res.send(html)    
     }); 
    }); 

    // You have to have a route that handle your form submission 
    server.post('/user_infos', function (req, res) { 

     // All your form submitted is in your req.body 
     // So retrieve the userID 
     var _userID = req.body.userId; 

     // Then sent the variable to the SteamAPI 
     SteamWebAPI.getRecentlyPlayedGames(_userID, 5, function(response) { 
      return res.json(response.response.games); 
     }); 

    }); 

希望它可以帮助

+0

非常好解释!我得到这些东西......我会试试这个,我会告诉你它是否有效......如果我编辑评论,你会收到通知吗? – Benjamin

+0

我不知道编辑,但如果你添加一些,是的:)。祝你好运 :) – Chilipote

0

在控制器/工厂,确保你有一个回调函数来得到服务器的响应。

$scope.postData = function(){ 
    $http.post('/', {data: someData}) 
    .then(function(response){ 
     console.log(JSON.stringify(response.data)); 
});