2013-04-30 66 views
0

这个简单的例子有什么问题?带公共节点的node.js中的同步请求

我将这段代码与其他同步/请求示例中的示例进行了比较,但我看不到它。

HttpClient = require('common-node').httpclient.HttpClient 
Fiber = require('fibers') 

google = -> 
    Fiber(() -> 
    console.log(new HttpClient({ 
     url: 'http://google.com' 
    }).finish().body.read(null).decodeToString()) 
).run() 

google() 
+0

当你运行它会发生什么? – matehat 2013-04-30 20:58:31

+0

请在此问题上添加错误,否则我们会被卡住! – TheHippo 2013-05-02 11:32:51

回答

0

我很困惑了一段时间,为什么当我登录响应它会被截断。最后我读到响应是可迭代的,并且循环遍历它似乎是确保您获得完整响应的唯一方法。

var jsonResponse = function(json_api_url) { 
    var HttpClient = require('httpclient').HttpClient; 
    var response = new HttpClient({url: json_api_url}).finish(); 
    var bodyString = ''; 
    response.body.forEach(function(stream) { 
     bodyString += stream.decodeToString(); 
    }); 
    return JSON.parse(bodyString); 
}