sql >> Database >  >> NoSQL >> MongoDB

Promise en nodejs MongoDB-stuurprogramma

Het handmatig beloven van een API is gevaarlijk, ik stel iets voor in de trant van:

TaskBroker.prototype._connectMongo = Q.nfcall(MongoClient.connect,
                                             'mongodb://127.0.0.1:27017/test',
                                            {});
TaskBroker.prototype.connectMongo = function(){
   return this._connectMongo().then(function(db){
       console.log("Hello");
       // self.stuff...
       return 42;
   }).catch(function(e){
       console.err("connection error",e); // log the connection error, or handler err
       throw e; // don't mark as handled, propagate the error.
   });
};

Met Bluebird-beloftes zou dat er ongeveer zo uitzien:

var MongoClient = Promise.promisifyAll(require("mongodb").MongoClient);

TaskBroker.prototype.connectMongo = function(){
    return MongoClient.connectAsync().then(... 
        // Bluebird will automatically track unhandled errors        
};


  1. Een overzicht van MongoDB-schemavalidatie

  2. Veldfout in object 'doel' op veld '':afgewezen waarde []; codes [typeMismatch.target.,typeMismatch.,typeMismatch.java.util.Date,typeMismatch]

  3. MongoDB $cond

  4. MongoDB $toDecimal