sql >> Database >  >> NoSQL >> MongoDB

node.js mongodb - collection.find().toArray(callback) - callback wordt niet aangeroepen

U gebruikt de open . niet terugbellen, dus als u de findall . probeert te maken verzoek direct na het maken van de dao dan is het niet klaar.

Als uw code er zo uitziet, werkt deze niet.

var dao = new DataAccessObject("my_dbase", "localhost", 27017);

dao.findAll("my_collection",function() {console.log(arguments);});

Ik heb het getest en het vindt geen records en het geeft ook geen foutmelding. Ik denk dat het een foutmelding zou moeten geven.

Maar als je het verandert zodat je de constructor terugbelt, dan zou het moeten werken.

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

En maak je code zo.

var dao = new DataAccessObject("my_dbase", "localhost", 27017, function() {
    dao.findAll("my_collection",function() {console.log(arguments);});
});



  1. Eenvoudige Node/Express-app, de functionele programmeermanier (Hoe om te gaan met bijwerkingen in JavaScript?)

  2. mongodb update het laatste array-element

  3. MongoDB $ lookup-pijplijnovereenkomst door _id werkt niet

  4. MongoDB Native Node Driver:Explain is Broken?