数据库连接完成后呈现 – Nodejs LevelDB

我是Nodejs,Express和Leveldb的新手。

我使用级别创build数据库,并希望传递参数。

exports.index = function(req, res) { var models_array = []; db.models.createValueStream() .on('data', function (data) { console.log(data.name); models_array.push(data.name); console.log(models_array); // 1st }); console.log(models_array); //2nd res.render('home', { title: 'Home', models:models_array }); }; 

这是我的代码,但第二个console.log(models_array)返回null,因为它们是asynchronous运行。 即使第一个console.log正在返回我所期望的。

如何使这个工作正常?

这样我可以将适当的数据传递给模板。

我寻find了自我。 我可以使用.once()

 var models_array = []; db.models.createValueStream() .on('data', function (data) { models_array.push(data.name); }).once('end', function() { res.render('home', { title: 'Home', models:models_array }); });