2016-03-04 3 views
0

Это мой нефритовый кодНевозможно перебрать объект JSON в узел, экспресс-приложение

block content 
    .container 
     #{data} //prints the whole json doc 
     p Here the list of topics will be shown 
     for topic,index in data 
       p #{index}#{topic.title} 

Есть продолжают индексы до 1002 отображается после «Вот список тем будет показан». Но нет никаких данных наряду с показанным показателем.

Это моя JSON данные, распечатана на #{data}

[{"_id":"56cc8af53ce0def08a1fa4fa","title":"Rotational Motion","subtopics":[{"stitle":"Introduction","versions":[{"desc":"What is rotational motion?"},{"desc":"Describe it?"}]},{"stitle":"Defination","versions":[{"desc":"Define rotational motion"},{"desc":"Define Rotational motion in detail"}]},{"stitle":"Derivation","versions":[{"desc":"Define rotational motion"},{"desc":"Define Rotational motion in detail"}]}]},{"_id":"56cc71107bb2a0733aba0007","title":"Wave Motion","subtopics":[{"stitle":"Introduction","versions":[{"desc":"What is rotational motion?"},{"desc":"Describe it?"}]},{"stitle":"Defination","versions":[{"desc":"Define rotational motion"},{"desc":"Define Rotational motion in detail"}]}]},{"_id":"56c635b38aff62a82b245e20","title":"Sound and Light","subtopics":[{"stitle":"Introduction","versions":[{"desc":"What is rotational motion?"},{"desc":"Describe it?"}]},{"stitle":"Defination","versions":[{"desc":"Define rotational motion"},{"desc":"Define Rotational motion in detail"}]}]}] 

Это, как я рендеринга файл -

router.get('/', function (req, res) { 
    var options = { 
     host: 'someurl', 
     port: 80, 
     path: '/topics' 
    }; 

    http.get(options, function(webresponse) { 
     console.log("Got response: " + webresponse.statusCode); 

     webresponse.on("data", function(chunk) { 
     console.log("data: " + chunk); 
     var data = chunk; 
     console.log(data); //prints the json data correctly 
     //rendering html with params 
     res.render('index', { user : req.user , data : data }); 

     }); 
    }).on('error', function(e) { 
     console.log("Got error: " + e.message); 
    }); 
}); 

ответ

4

Джейд использует each не for. Обновите свой код до each topic in data, и он должен работать нормально.

Jade Docs

EDIT: Переход на код сервера, то, казалось бы, что data просто объект JSON, который возвращается в виде строки, поэтому вы не можете обходить это правильно. Использование JSON.parse(data) перед отправкой его в средство визуализации должно исправить эту проблему.

+0

Даже при использовании каждого из них даются те же результаты, ничего не отображается. Где еще я буду ошибаться? –

+0

Я предполагаю, что использование 'p = topic.title' дает те же результаты? Разве JSON разбирается перед отправкой в ​​JADE, или это просто строка? Вы можете попробовать «каждую тему в JSON.parse (data)» и посмотреть, работает ли это – SlashmanX

+0

'p = topic.title'. И я обновил вопрос, чтобы включить способ рендеринга файла. –

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