Не използвате open
обратно извикване, така че ако се опитвате да направите findall
заявка веднага след създаването на dao
тогава няма да е готово.
Ако вашият код е такъв, той няма да работи.
var dao = new DataAccessObject("my_dbase", "localhost", 27017);
dao.findAll("my_collection",function() {console.log(arguments);});
Тествах го и не намира записи и също не дава грешка. Мисля, че трябва да дава грешка.
Но ако го промените така, че да дадете обратно извикване на конструктора, тогава трябва да работи.
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);
}
И направете кода си така.
var dao = new DataAccessObject("my_dbase", "localhost", 27017, function() {
dao.findAll("my_collection",function() {console.log(arguments);});
});