您的位置:首页 > Web前端 > Node.js

nodejs 的一个疑问

2013-10-20 21:56 274 查看
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的方式。

先记一笔在这里,以后研究。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  node mongodb