我如何写第三方API的Node.js请求?

有没有人有一个API响应的例子从一个http.request()传递给第三方返回到我的clientSever并写出到客户端浏览器?

我一直陷在我确信简单的逻辑。 我从阅读文档中使用快递,似乎并没有为此提供抽象。

谢谢

请注意,这里的答案有点过时 – 你会得到一个不赞成的警告。 2013年的等值可能是:

 app.get('/log/goal', function(req, res){ var options = { host : 'www.example.com', path : '/api/action/param1/value1/param2/value2', port : 80, method : 'GET' } var request = http.request(options, function(response){ var body = "" response.on('data', function(data) { body += data; }); response.on('end', function() { res.send(JSON.parse(body)); }); }); request.on('error', function(e) { console.log('Problem with request: ' + e.message); }); request.end(); }); 

如果你要写很多这些,我也会推荐请求模块。 从长远来看,它将为您节省很多击键!

以下是在快速获取函数中访问外部API的简单示例:

 app.get('/log/goal', function(req, res){ //Setup your client var client = http.createClient(80, 'http://[put the base url to the api here]'); //Setup the request by passing the parameters in the URL (REST API) var request = client.request('GET', '/api/action/param1/value1/param2/value2', {"host":"[put base url here again]"}); request.addListener("response", function(response) { //Add listener to watch for the response var body = ""; response.addListener("data", function(data) { //Add listener for the actual data body += data; //Append all data coming from api to the body variable }); response.addListener("end", function() { //When the response ends, do what you will with the data var response = JSON.parse(body); //In this example, I am parsing a JSON response }); }); request.end(); res.send(response); //Print the response to the screen }); 

希望有所帮助!

这个例子看起来很像你试图实现的(纯Node.js,没有expression):

http://blog.tredix.com/2011/03/partly-cloudy-nodejs-and-ifs.html

HTH