Ser*_*les 9 ejs mongodb node.js express
我试图将查询结果传递给我在Express中的视图.查询是使用mongodb进行的,mongodb计算集体用户的总点数.
当我尝试将计数作为变量传递时,我得到了
ReferenceError: /Sites/test/views/dashboard.ejs:76
Run Code Online (Sandbox Code Playgroud)
在我的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
});
});
Run Code Online (Sandbox Code Playgroud)
我有什么想法可以通过查询结果?
小智 8
Node异步执行查询.也就是说,查询的结果不会立即返回.您必须等待,直到返回结果并使用回调来完成此操作.因此,渲染页面调用必须在回调中进行.尝试像这样修改你的功能.
app.get('/dashboard', function(req, res) {
User.find({}, function(err, docs) {
console.log(docs);
});
User.find({
points: {
$exists: true
}
}, function(err, docs) {
if(err){
console.log(err);
//do error handling
}
//if no error, get the count and render it
var count = 0;
for (var i = 0; i < docs.length; i++) {
count += docs[i].points;
}
var totalpoints = count;
res.render('dashboard', {
title: 'Dashboard',
user: req.user,
totalpoints: totalpoints});
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12361 次 |
| 最近记录: |