0
來到這裏一noob問題...但首先,有點背景資料...建立在節點/快遞一個數據對象,並通過對象呈現模板
我已經開始編碼與快遞JS應用,雖然我一點一點地掌握了它,但我碰到了一堵磚牆......
我有一個CodeIgniter背景,並且在CI中,您在控制器中創建了一個$ data變量,所有您需要將數據傳遞給您要呈現的頁面。
所以我試圖在Express中做同樣的事情......但我沒有看到如何正確地做到這一點。
例如,
我有這樣一段代碼在一個名爲「routes.js」:
//when you navigate to domain.com/test
app.get('/test', function(req, res)
{
//object where i want to store all my data
var data = {};
//dynamically get the navigation menu
navigation_model.get_menu(function(err, result){
if(err) throw err;
//add the result, which is an object, to the data obj
data.navigation = result;
});
content_model.findAll(function(err, result){
if(err) throw err;
//add the result, which is an object, to the data obj
data.content = result;
});
//page that i want to send the data to
res.render('test_view',{data: this.data});
});
說我有但問題是,做異步性質節點的,到時候我渲染出的頁面,我的「數據」的對象還沒有從型號上接收到的數據...
問題:
- 那麼將數據導入'data'obj的最佳方式是什麼?
- 我是否必須在回調函數內嵌套代碼,在更多的回調函數中,直到我的數據obj已經收到數據? (感覺適得其反)
任何幫助非常感謝!
你不需要嵌套,但你需要等待一切到達之前,你可以運送它(物理)。你將最終從回調中調用渲染,而不是從get函數體中調用渲染器。 – dandavis