2016-11-06 5 views
0

Nunjucksを使用してmongoDBサーバーからHTMLファイルにデータを渡して、読み込み時にレンダリングします。は、nunjucksでhtmlにオブジェクトを渡すことができません

App.js私のデータベース接続ファイルは、この持って

app.get('/', function(req, res) { 
    database.retrieveComments(req, function(err,result) { 
     console.log(result); 
     res.render('index.html', result); 
    }); 
}); 

connection.js

retrieveComments: function(req, callback) { 
    db.collection('comments').find().toArray(function(err,result) { 
     if (result.length > 0) { 
      return callback(null, result); 
     }; 
    });    
}, 

最後に、私のHTMLファイル内に、私はこの部分を持っています:

index.htmlを

<div id="p" class="task" commentId = "1"> 
    1st comment {{ result }} 
</div> 

私はそれをCONSOLE.LOGときに生じる見ることができますが、私はのLocalServerを参照するとき、HTMLファイルでそれをレンダリングしていないようです。 文字列を渡すだけで、結果オブジェクトを渡すときは表示できません。

ここでは非同期ノードブラックマジックが動作しているのか、キーのNunjucks要素がないのか不思議です。

+0

使用 'res.render( 'index.htmlを'、{結果:結果});' 'または1コメント{{result.smth - プロプ} } ' –

+0

これらのどちらも動作しません。 –

答えて

1
app.get('/', function(req, res) { 
    database.retrieveComments(req,function(err, result) { 
     if (err) 
      return next(err); // Always check error 
     console.log('DB result: ', result); // Verify that result is not empty 
     res.render('index.html', {result: result}); 
    }); 
}); 

retrieveComments : function (req, callback) { 
    db.collection('comments').find().toArray(function(err, result) { 
     // callback must be called always 
     if (err) 
      return callback(err); 

     if (result.length == 0) 
      return callback(new Error('Result is empty!')); 

     callback(null, result); 
    }); 
}, 

<div id="p" class="task" commentId = "1"> 
1st comment {{ result }} 
{{ result[0].name }} {# result is Array, right? #} 
</div> 
関連する問題