Nie używasz open
callback, więc jeśli próbujesz wykonać findall
żądanie zaraz po utworzeniu dao
wtedy nie będzie gotowy.
Jeśli Twój kod jest taki, nie zadziała.
var dao = new DataAccessObject("my_dbase", "localhost", 27017);
dao.findAll("my_collection",function() {console.log(arguments);});
Przetestowałem to i nie znajduje rekordów, a także nie daje błędu. Myślę, że to powinno dać błąd.
Ale jeśli zmienisz to tak, że dajesz wywołanie zwrotne do konstruktora, to powinno działać.
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);
}
I stwórz swój kod w ten sposób.
var dao = new DataAccessObject("my_dbase", "localhost", 27017, function() {
dao.findAll("my_collection",function() {console.log(arguments);});
});