2014-03-12 2 views
1

Я пишу приложение в node.js, у меня есть следующий код.рендеринг JSON в поле зрения

API для извлечения темы из БДА

allTopics = function (req, res) { 
    db.Topic.all({limit: 10}).success(function (topics) { 
    res.send(topics) 
    }); 
}; 

маршрута для индекса тема

app.get('/topics', function (req, res){ 
    res.render('topics/index.ejs',{ topics : allTopics }) 
    }); 

ли выше правильный код для маршрута?

Также у меня есть файл index.ejs, где я хочу перечислить все темы (т. Е. Получить данные из ответа json). Как мне это достичь?

ответ

2

Ваш код, как есть, не будет работать, но вы могли бы переписать следующим образом:

// notice how I am passing a callback rather than req/res 
allTopics = function (callback) { 
    db.Topic.all({limit: 10}).success(function (topics) { 
    callback(topics); 
    }); 
}; 


// call allTopics and render inside the callback when allTopics() 
// has finished. I renamed "allTopics" to "theData" in the callback 
// just to make it clear one is the data one is the function. 
app.get('/topics', function (req, res){ 
    allTopics(function(theData) { 
    res.render('topics/index.ejs',{ topics : theData }); 
    }); 
}); 
+0

Спасибо @Hector. –

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