Sie verwenden nicht das open
Rückruf also, wenn Sie versuchen, den findall
zu machen direkt nach dem Erstellen des dao
anfordern dann ist es nicht fertig.
Wenn Ihr Code so ist, wird er nicht funktionieren.
var dao = new DataAccessObject("my_dbase", "localhost", 27017);
dao.findAll("my_collection",function() {console.log(arguments);});
Ich habe es getestet und es findet keine Datensätze und es gibt auch keinen Fehler. Ich denke, es sollte einen Fehler geben.
Aber wenn Sie es so ändern, dass Sie dem Konstruktor einen Callback geben, dann sollte es funktionieren.
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);
}
Und machen Sie Ihren Code so.
var dao = new DataAccessObject("my_dbase", "localhost", 27017, function() {
dao.findAll("my_collection",function() {console.log(arguments);});
});