nodejs的一个疑问
nodeJs连接MongoDB数据库,根据服务器的不同生成相应的URL,所以写了个方法:
市中网站建设公司创新互联,市中网站设计制作,有大型网站制作公司丰富经验。已为市中上1000+提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的市中做网站的公司定做!
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的方式。
先记一笔在这里,以后研究。。。
分享文章:nodejs的一个疑问
本文路径:http://azwzsj.com/article/gdehgo.html