sql >> データベース >  >> NoSQL >> MongoDB

PromiseとnodejsのMongoDBドライバー

    APIを手動で約束するのは危険です。次のように提案します:

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

    Bluebirdの約束では、次のようになります。

    var MongoClient = Promise.promisifyAll(require("mongodb").MongoClient);
    
    TaskBroker.prototype.connectMongo = function(){
        return MongoClient.connectAsync().then(... 
            // Bluebird will automatically track unhandled errors        
    };
    


    1. Celery for Realtime、Geventを使用した同期外部APIクエリの使用

    2. MongoDBは複数のアレイをアンワインドします

    3. Redis/NoSQLでの概念化についてサポートが必要

    4. Mongodbであいまい検索しますか?