MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

node.js mongodb - collection.find().toArray(callback) - Callback wird nicht aufgerufen

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