我是Nodejs,Express和Leveldb的新手。
我使用level创建了db并希望传递参数。
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,因为它们是异步运行的。 即使是第一个console.log也会返回我的预期。
如何正常运作?
这样我就可以将正确的数据传递给模板了。
答案 0 :(得分:0)
我找到了自己。我可以使用.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
});
});