通过多模块方法获得mongodb / mongoskin访问的效率?

时间:2012-09-14 02:38:52

标签: node.js mongodb rest express mongoskin

我正在开发一个提供REST api的快速应用程序,它通过mongoskin使用mongodb。我想要一个从db acess分割路由的层。我见过一个通过创建模块文件创建数据库桥的示例,例如models / profiles.js:

var mongo = require('mongoskin'),
db = mongo.db('localhost:27017/profiler'),
profs = db.collection('profiles');

exports.examplefunction = function (info, cb) {
  //code that acess the profs collection and do the query
}

以后,路由文件中需要此模块。

我的问题是:如果我使用这个方法为每个集合创建一个模块,它会有效吗?我是否有这样做从mongo连接和断开多个(不必要的)时间的问题?

我很兴奋,将db变量从一个模块导出到处理每个集合的其他模块可以解决问题,但我不确定。

1 个答案:

答案 0 :(得分:0)

使用单个连接,然后创建传入共享数据库实例的模块。您希望避免为每个模块设置单独的数据库池。其中一个是将模块构造为一个类。

exports.build = function(db) {
 return new MyClass(db);
}

var MyClass = function(db) {
  this.db = db;
}

MyClass.doQuery = function() {
}