2011-10-18 13 views
0

私のNodeJSプロジェクトでは、作業するDBハンドルを与えるシンプルなモジュールを作りたいと思います。私はこのようなものを考えました:DB提供モジュール、コールバック

settings = module.exports.settings = 
    db: 'test' 
    clear_interval: -1 
    host: '127.0.0.1' 
    port: '27017' 
    auto_reconnect: true 

{Db, Connection, Server, Collection, BSON, ObjectID} = require 'mongodb' 

db = new Db settings.db, new Server settings.host, settings.port, { auto_reconnect: settings.auto_reconnect } 
db.open -> 
    module.exports.db = db 

これは本当に安全ですか?または、モジュールがロードされたときにmodule.exports.dbが正しく設定されていることを確認する別の方法はありますか?

EDIT入力が完了する前に誤って入力してください。

答えて

1

これは動作しません。

module.exports.dbは、モジュールが要求された後に設定されます。あなたの代わりに何をすべき

module.exports.DB = function (cb) { 
    getDbAsync(cb); 
} 

フォースあなたのAPIのようなものが

+0

非同期にでも、何、それは私がDB接続がしか一度オープンされていることを確認したい場合は次のようになりますか? – Lanbo

+0

@Scán内部的にキャッシュされた 'getDBAsync'を除いて全く同じことです。 – Raynos

関連する問題