我正在开发一个提供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变量从一个模块导出到处理每个集合的其他模块可以解决问题,但我不确定。
答案 0 :(得分:0)
使用单个连接,然后创建传入共享数据库实例的模块。您希望避免为每个模块设置单独的数据库池。其中一个是将模块构造为一个类。
exports.build = function(db) {
return new MyClass(db);
}
var MyClass = function(db) {
this.db = db;
}
MyClass.doQuery = function() {
}