我正在尝试获取回调中返回的数据,但我的回调函数(callbackFunc())没有被执行,可能是因为我接近这个方式。如果有人会指出我正确的方向我不胜感激。
由于
var url = 'mongodb://localhost:27017/bac';
var term = 'usa';
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
findDocument(term.toUpperCase(),'country_code', db, function() {db.close();});
});
function callbackFunc(data){
console.log("inside callbackFunc()...");
console.log(data);
}
var findDocument = function(term, field, db, callbackFunc){
var collection = db.collection('bac');
collection.findOne({'country_code' : term}, function(err, document){
assert.equal(err,null);
console.log("Found this matching record for "+term);
console.log(document);
callbackFunc(document);
});
}
答案 0 :(得分:1)
调用的回调函数不是定义的callbackFunc
function callbackFunc(data){ console.log("inside callbackFunc()..."); console.log(data); }
但是
function() {db.close();}
因为你传递了函数参数。
答案 1 :(得分:1)
让我们看看你的代码:
findDocument(term.toUpperCase(),'country_code', db, function() {db.close();});
您传递错误的回调函数,传递function() {db.close();}
。
我想你想通过:
function callbackFunc(data){
console.log("inside callbackFunc()...");
console.log(data);
}
如此充分使用:
findDocument(term.toUpperCase(),'country_code', db, callbackFunc);