我正在开发一个提供 REST api 的快速应用程序,它通过 mongoskin 使用 mongodb。我想要一个将路由与数据库访问分开的层。我看过一个通过创建模块文件来创建数据库桥的示例,示例 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 变量从一个模块导出到处理每个集合的其他模块会解决问题,但我不确定。
最佳答案
使用单个连接,然后创建传入共享数据库实例的模块。您希望避免为每个模块设置单独的数据库池。其中之一是将模块构建为一个类。
exports.build = function(db) {
return new MyClass(db);
}
var MyClass = function(db) {
this.db = db;
}
MyClass.doQuery = function() {
}
关于node.js - 通过多模块方法访问 mongodb/mongoskin 的效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12417425/