nodejs 的一个疑问
admin
2023-04-13 20:01:28
0


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();

在model层连接数据库,只需直接调用改方法即可

首先添加引用:

var urlFactory = require('./dbFactory');

然后,直接调用:

require('mongodb').connect(urlFactory.url, function(err, conn){
    //读取 users 集合
    conn.collection('users', function (err, collection) {
    // do something
    });
  });


这样,所有需要连接数据库的地方,都需要调用urlFactory.url,也就是createURL方法,肯定是低效的。所以,我本来打算写个缓存之类的,把url暂存起来,省得每次都要重新判断、重新生成。


不过,莫名的问题出现了。无论怎样运行系统,console.log("config database url...");只输出一次!!


这是为什么呢?NodeJs的机制?还是exports的原因?个人猜测是require('mongodb').connect(urlFactory.url, fn);这种链接方式,采用类似session的方式。


先记一笔在这里,以后研究。。。


相关内容

热门资讯

特朗普访华在即,随行商界大咖都... 美国总统特朗普将于5月13日至15日对中国进行国事访问。这是中美两国元首继去年10月釜山之后再次面对...
有线电视机顶盒安装问题求安装方... 有线电视安装说明: 一、将白色有线电视线一端连接有线电视终端盒另一端连接机顶盒后的射频输入口。 ...
60寸电视机尺寸画面长宽是多少...   60寸的液晶电视,60寸就是指电视屏幕对角线长度,因为长宽比有两种情况,经过寸转化为厘米计算之后...
长城电视机尺寸测量方法 长城电视机的尺寸测量方法与其他品牌的电视机测量方法基本相同。需要准备的工具有卷尺或直尺等测量工具,以...
伊朗学者:美伊能否达成协议,取... 伊朗5月10日就美国最新停战方案提交响应后,美国总统特朗普当天发文指出,伊方的响应“完全不可接受”。...
50英寸电视机尺寸是多少厘米 50 英寸电视机的尺寸通常是指屏幕对角线的长度,1 英寸约等于 2.54 厘米,因此 50 英寸电视...
演员张凌赫成上市公司第六大股东... 【大河财立方消息】 5月12日,节能风电在互动平台回应近期传言:关于近期网络流传的“公司股东张家玮先...
3D电视怎么样 最佳回答 你好这位网友,现在的很多电视机都是带3d功能的,只不过这种功能是需要通过特殊的VR眼镜才能...
三年行动计划公布!全面提升周口... 【大河财立方消息】 近日,河南省人民政府印发《河南周口国家农业高新技术产业示范区高质量发展三年行动计...
员工用企业账号向顾客发送“有偿... “5000陪我一晚上有时间吗?”近日,贵阳一沪上阿姨门店的企业成员账号给顾客发送“有偿陪睡”信息一事...