2016-10-18 3 views
0
のコールバックハンドラの適切な使用

コールバックで返されているデータを取得しようとしていますが、コールバック関数(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); 
    }); 
} 

答えて

1

はあなたのコードを見てみましょう:

findDocument(term.toUpperCase(),'country_code', db, function() {db.close();}); 

あなたはfunction() {db.close();}を渡し、間違ったコールバック関数を渡します。

function callbackFunc(data){ 

    console.log("inside callbackFunc()..."); 
    console.log(data); 

} 

ので、pleseは使用:

findDocument(term.toUpperCase(),'country_code', db, callbackFunc); 

は、私はあなたが合格したいと思います

1

コールバック関数が呼び出されて、あなたがに渡しているので定義されcallbackFunc

function callbackFunc(data){ console.log("inside callbackFunc()..."); console.log(data); }

しかし

function() {db.close();}

ではありません関数の引数。