节点http.get解析JSON主体

时间:2013-11-11 18:53:29

标签: javascript json node.js http

我正在尝试从http.get解析JSON主体。我知道JSOn对象是有效的,因为我可以成功评估:

var json = document.body.innerText; 
obj = JSON.parse(json);

但是,此代码返回错误:

undefined:1
undefined{
Syntax error, Unexpected token u

我的节点代码:

function getCategories(callback){
    var body;
    var urlCats = "http://...";
    process.send(urlCats);
    http.get(urlCats, function(res){
        res.on('data', function (chunk) {
            body += chunk;
        });
        res.on('end', function () {
            callback(JSON.parse(body));
        });
    })
}

我已经看过Calling a JSON API with Node.js但是我认为它不适用,因为我已经正确地获取了正文(回调(正文)打印正常,尽管对象以:undefined {)开头。有什么建议?我应该只切断身体弦线的“未定义”部分吗?必须有一些我想念的东西!谢谢!

1 个答案:

答案 0 :(得分:4)

问题是你的


 var body;
 ...
 body += chunk;

声明了body,但其值为'undefined'。

因为第一个身体+ =“某事”转化为身体=未定义+“某事”。

改变


 var body;


 var body = "";

应该解决问题。

希望这有帮助,