我用Mongoose来管理Mongo数据库.我的连接文件非常简单:

var mongoose = require('mongoose')

mongoose.connection.on("open", function(){
  console.log("Connection opened to mongodb at %s", config.db.uri)
});
console.log("Connecting to %s", config.db.uri)
mongoose.connect(config.db.uri)

global.mongoose = mongoose

然后在我的应用程序中.我只是

require('./database)

"mongoose "变量在全局都可用.我宁愿不使用globals(至少不直接使用).有没有更好的方法通过单例模式或其他方法跨 node (我使用的是express.js)共享数据库连接变量?

推荐答案

我只是在我的应用程序中执行以下操作.js文件:

var mongoose = require('mongoose');
mongoose.connect('mongodb://address_to_host:port/db_name');
modelSchema = require('./models/yourmodelname').YourModelName;
mongoose.model('YourModelName', modelSchema);
// TODO: write the mongoose.model(...) command for any other models you have.

此时,任何需要访问该模型的文件都可以执行以下操作:

var mongoose = require('mongoose');
YourModelName = mongoose.model('YourModelName');

最后,在模型中,您可以正常写入文件,然后在底部导出:

module.exports.YourModelName = YourModelName;

我不知道这是否是最好最棒的解决方案(大约两天前我才开始考虑导出模块),但它确实有效.如果这是一个好方法,也许有人可以发表 comments .

Mongodb相关问答推荐

如何从文档列表的数组内部打印一个对象?

通过mongoDB中的查找从管道中删除被阻止的用户

映射数组值并查找每个匹配的集合

如何在MongoDB中正确解析佛年?

MongoDB通过查找具有多个数组的对象进行聚合

Mongo 聚合将 $sort 与 $geoNear 结合使用

创建索引需要很长时间

使用 homebrew 和 Xcode 8.1.1 安装 Mongodb 失败

在一个变量上运行的 Node JS 中使用正则表达式的 Mongo 查询

mongoose通过引用属性查找文档

返回从循环中调用的数据库查询中检索到的数据的问题

MongoDB 中 cursor.count() 和 cursor.size() 之间的区别

使用 nodejs/mongoose 部分更新子文档

如何使用 -number 后缀对字符串进行 MongoDB 查询排序?

将 mongoose 字符串模式类型默认值设为空白并使该字段可选

Python Django-REST-framework 和 Angularjs 的文件夹 struct

移动 MongoDB 的数据文件夹?

如何在 NoSql 数据库(MongoDB)中强制执行外键?

缩短 MongoDB 属性名称值得吗?

如何使用户的邮箱在 mongoDB 中唯一?