我有一个函数getthem(),它检查mongo db的清单并为其返回名称,streamurl。
我将它们作为var流传递给呈现/ dashboard页面的renderme。
我的问题是我得到了console.log(“结束查找:” + JSON.stringify(stream))
来显示我的测试输入,但是渲染没有任何效果。
即时通讯使用ejs进行渲染。如何将结果传递到页面?
router.get('/dashboard', function (req, res) {
var foo = getthem();
function getthem() {
var group = "tesint";
console.log('geting for group : ' + group);
var mdlListings = require('../models/listings.js');
var myresult = "tet";
mdlListings.find({}, "name streamurl", function (err, data) {
if (err) {
console.error(err);
return;
}
if (data === null) {
console.log("No results");
return;
}
var stream = { };
data.forEach(function (streams) {
console.log("Got " + streams.name + " " + streams.streamurl);
stream[streams.name] = streams.streamurl;
// stream += 'name: '+streams.name+'},{streamurl: '+streams.streamurl;
// console.log("stram arry "+stream[streams.name] )
console.log("END OF FIND:"+JSON.stringify(stream))
}, renderme(stream));
// console.log("Result:", votes);
//var myresult = Object.keys(stream).map(function (name) {
// return { name: name, url: stream[name] };
//})
console.log("before return stream "+stream);
return stream;
});
}
function renderme(resa) {
console.log("RESA"+JSON.stringify(resa))
var resa = JSON.stringify(resa);
res.render('dashboard', {
title: 'Dashboard',
user: req.user,
listing: resa
}
)
}
您要将的结果renderme(stream)
作为第二个参数传递给forEach()
。renderme(stream)
然后forEach()
在stream
仍然是一个空对象的情况下,在您的回调被调用之前立即求值。我的猜测是您想要这样的东西:
data.forEach(function (streams) {
console.log("Got " + streams.name + " " + streams.streamurl);
stream[streams.name] = streams.streamurl;
console.log("END OF FIND:"+JSON.stringify(stream))
});
renderme(stream);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句