我正在尝试通过Express将查询结果传递到视图中。该查询使用mongodb进行,用于计算所有用户的总积分。
当我尝试将计数作为变量传递时,我得到了
ReferenceError: /Sites/test/views/dashboard.ejs:76
这里涉及到我的ejs视图中的<%= totalpoints %>。以下是我在app.js中的代码:
app.get('/dashboard', function(req, res) {
User.find({}, function(err, docs) {
console.log(docs);
});
User.find({
points: {
$exists: true
}
}, function(err, docs) {
var count = 0;
for (var i = 0; i < docs.length; i++) {
count += docs[i].points;
}
return count;
console.log('The total # of points is: ', count);
});
var totalpoints = count;
res.render('dashboard', {
title: 'Dashboard',
user: req.user,
totalpoints: totalpoints
});
});
有什么办法可以将查询结果传递出去吗?
res.render
是否会等待 for 循环完成 - VishnuUser.aggregate
来查找积分总和,而不是在循环中逐个相加。http://mongoosejs.com/docs/api.html#aggregate-js - Vishnures.render()
会“等待”。 - robertklep