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