2017-03-10 9 views
0

NodeJS、MongoDbを使用しています。javascriptで約束された接続を閉じる最もクリーンな方法は何ですか

MongoClientは本当にうれしい約束を返しますが、正しく使用しているかどうかはわかりません。あなたは、私が&関数func2が行われますがfunc1とそれを閉じることができるように、私は、接続のためのスコープを作成しているかを確認

const mongo = require('mongodb').MongoClient; 
return mongo 
     .connect(getConnectionString()) 
     .then(con => { 
       func1(con) 
       .then(val => {return func2(con, val);}) 
       .then(val => {con.close(); return val;}) 
       .catch(err => log.error(err)); 
      }); 

//contrived func to get my point across 
func1(connection) { 
    //use connection to fetch data 
    return fetchedData;   
} 

//contrived func to get my point across 
func2(connection, val) { 
    //use connection to fetch data 
    return fetchedData + val;   
} 

:ような何かをするためにクリーンな方法は何ですか。よりクリーンなアプローチがありますか?

func1を呼び出すクリーナー方法がある場合& funct2私もそれを感謝します。

答えて

0

私は彼らのAPIドキュメントからまっすぐブルーバードの.using

例を使用することになり

using(getConnection(), function(connection) { 
    // Don't leak the `connection` variable anywhere from here 
    // it is only guaranteed to be open while the promise returned from 
    // this callback is still pending 
    return connection.queryAsync("SELECT * FROM TABLE"); 
    // Code that is chained from the promise created in the line above 
    // still has access to `connection` 
}).then(function(rows) { 
    // The connection has been closed by now 
    console.log(rows); 
}); 
関連する問題