node.js - 通过多模块方法访问 mongodb/mongoskin 的效率?

标签 node.js mongodb rest express mongoskin

我正在开发一个提供 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/

相关文章:

java - 如何使用 Jersey (Java) 通过 Rest API 上传 csv 文件?

mysql - Node.js 和 mySQL 问题

node.js - 将函数协调为异步样式的通用包装器

java - 当 mongodb 更改流的恢复 token 过时时,java 驱动程序的行为是什么?

spring - thymeleaf 使用动态参数/元素生成 REST url

swift - 从独立 Apple Watch 应用将媒体上传到 Firebase Storage

node.js - 如何使用nodejs爬取javascript(vuejs、reactjs)网站

node.js - 如何解决npm安装命令

node.js - 如何使用 Mongoose 删除数据库?

java - 从JAVA连接MongoDB的问题