Próbuję przejść przez wynik zapytania do mojego widoku w Express. Kwerenda jest wykonywana za pomocą mongodb, która zlicza wszystkie punkty zbiorczych użytkowników.Prześlij dane do widoku w Express
Gdy próbuję przejść przez liczbę jako zmienną, mam
ReferenceError: /Sites/test/views/dashboard.ejs:76
który odnosi się do <% = totalpoints%> moim zdaniem Ejs. Poniżej znajduje się mój kod w 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
});
});
Jakieś pomysły, w jaki sposób mogę przekazać wynik zapytania?
Wątpię czy 'czeka res.render' till pętli jest zakończone – Vishnu
@ServerSideSkittles Użyj' User.aggregate' za znalezienie sumowanie punktów zamiast dodawać w pętli for. http://mongoosejs.com/docs/api.html#aggregate-js – Vishnu
@ Pętle 'for' są synchroniczne, więc tak,' res.render() 'będzie" czekać ". – robertklep