No estás usando el open
devolución de llamada, por lo que si está tratando de hacer findall
solicitud justo después de crear el dao
entonces no estará listo.
Si tu código es así, no funcionará.
var dao = new DataAccessObject("my_dbase", "localhost", 27017);
dao.findAll("my_collection",function() {console.log(arguments);});
Lo probé y no encuentra registros, y tampoco da error. Creo que debería dar un error.
Pero si lo cambia para devolver la llamada al constructor, entonces debería 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);
}
Y haz tu código así.
var dao = new DataAccessObject("my_dbase", "localhost", 27017, function() {
dao.findAll("my_collection",function() {console.log(arguments);});
});