问题
I have the results of my query in result but I can not pass it to browser, it is showing empty.
how can I return the result to res.send('result')?
myApp.get('/agg',function(req,res){
MongoClient.connect(url, function(err, db) {
// Execute aggregate, notice the pipeline is expressed as an Array
db.collection('projects').aggregate([{$match:{school_state:"DC"}}, {$group:{_id: "$primary_focus_subject",total_amount:{$sum: "$total_donations"}}}],function(err,result){
console.log(result);
db.close();
});
});
res.send(result);
});
回答1:
You have 2 solutions :
put
res.send(result);where you haveconsole.log(result)having a promise wrapping your MongoClient.connect like this :
let promise = new Promise((resolve,reject)=>{ MongoClient.connect(url,function(err,db){ db.collection('projects').aggregate([{$match:{school_state:"DC"}}, {$group:{_id: "$primary_focus_subject",total_amount:{$sum: "$total_donations"}}}],function(err,result){ if(err) reject(err) resolve(result); }); }); })
来源:https://stackoverflow.com/questions/43697903/return-variable-from-a-nested-callback-in-node-js