app.js で:
app.locals.count = function(id, call) {
var myId = mongoose.Types.ObjectId(id)
db.collection('comment').aggregate({$match: {postid: myId}}, {$group : {_id: '$postid', nb: {$sum: 1}}},
function(err, cb){
for (i = 0; i < cb.length; i++) { var la = cb[i]; return call(la.nb); };
});
}
index.ejs で:
<% count(indexpost._id, function( result ){ %> <%= result %> <% }); %>
// 結果は返されませんが:
<% count(indexpost._id, function( result ){ %> <%= console.log(result) %> <% }); %>
端末に結果を返す..
index.ejs に結果を表示するにはどうすればよいですか? ありがとう
編集 #1 ####################################
app.locals.count = function(id, call){
var myId = mongoose.Types.ObjectId(id)
var caca = ccount(myId);
call(caca);
}
function ccount(myId){
db.collection('comment').aggregate({$match: {postid: myId}}, {$group : {_id: '$postid', nb: {$sum: 1}}},
function(err, cb){
for (i = 0; i < cb.length; i++) {
var la = cb[i];
var value = la.nb;
return la.nb;
};
});
}
in index.ejs // 未定義を返す
しかし :
app.locals.count = function(id, call){
var myId = mongoose.Types.ObjectId(id)
var caca = 2;
call(caca);
}
in index.ejs // 2 を返す
アカウント関数の不正なメソッドの戻り..