nodejsの一つの疑問

1052 ワード

nodeJsはmongodbデータベースに接続し、サーバーによって該当URLを生成するので、方法を書きました.
var createURL = function(){
    var mongourl = "";
    if(process.env.VCAP_SERVICES){
       mongourl = .....;
    }else{
       mongourl = ...;
    }
    console.log("config database url...");
    return mongourl;
}
exports.url = createURL();
モデル層でデータベースを接続する場合、直接に変更方法を呼び出すだけでいいです.
最初に参照を追加:
var urlFactory = require('./dbFactory');
その後、直接に呼び出します.
require('mongodb').connect(urlFactory.url, function(err, conn){
    //   users   
    conn.collection('users', function (err, collection) {
    // do something
    });
  });
このように、データベースに接続する必要があるところは全部url Factory.urlを呼び出す必要があります.ですから、私はもともとキャッシュなどを書いて、urlを一時的に預けて、毎回見直し、再生成する必要がないようにします.
しかし、不可解な問題が発生しました.どのようにシステムを実行しても、consolie.log("config database url");一回だけ出力!
これはなぜですか?NodeJsの仕組み?それともexportsの原因ですか?個人的な推測はrequire('mongodb').connect(url Factory.url,fn);このリンク方式は、sessionのような方式を採用しています.
まずここに書いて、後で研究します.