MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

node.js mongodb - collection.find().toArray(callback) - callback não é chamado


Você não está usando o open callback então se você está tentando fazer o findall request logo após criar o dao então não estará pronto.

Se o seu código for assim, não funcionará.
var dao = new DataAccessObject("my_dbase", "localhost", 27017);

dao.findAll("my_collection",function() {console.log(arguments);});

Testei e não encontra registros, e também não dá erro. Acho que deve dar erro.

Mas se você alterá-lo para dar um retorno de chamada ao construtor, ele deve funcionar.
var DataAccessObject = function(db_name, host, port, callback){
    this.db = new Db(db_name, new Server(host, port, {auto_reconnect: true}, {}));
    this.db.open(callback);
}

E faça seu código assim.
var dao = new DataAccessObject("my_dbase", "localhost", 27017, function() {
    dao.findAll("my_collection",function() {console.log(arguments);});
});