2013-11-11 3 views
1

Я пытаюсь разобрать тело JSON с http.get. Я знаю, за то, что объект JSON является действительным, потому что я могу Eval успешно:узел http.get parse JSON body

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 {). Какие-либо предложения? Должен ли я просто отрезать «неопределенную» часть моей струны? должно быть что-то мне не хватает! Благодаря!

ответ

4

Проблема ваша

 

var body; 
... 
body += chunk; 
 

тело объявлена, но имеет значение «неопределенные».

therfor the first body + = "something" означает body = undefined + "something".

изменения

 

var body; 
 

в

 

var body = ""; 
 

должны решить эту проблему.

Надеюсь, что это поможет,

+0

Ха-ха, красиво пятнистый! большое спасибо. – xShirase

Смежные вопросы