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();}

Потому что проходящие в аргументы функции.

Смежные вопросы