单节点.js项目中的monose和多个数据库我正在做一个包含子项目的Node.js项目。一个子项目将有一个MongoDB数据库,Monose将用于包装和查询db。但问题是Monose不允许在单个monose实例中使用多个数据库,因为模型构建在一个连接上。要使用多个monose实例,Node.js不允许多个模块实例,因为它在require()..我知道在Node.js中禁用模块缓存,但我认为这不是一个好的解决方案,因为它只需要猫鼬。我试着用createConnection()和openSet()在猫鼬身上,但这不是解决办法。我试图深入复制猫鼬实例(http:/blog.Imaginea.com/深处复制javascript/)将新的猫鼬实例传递给子项目,但它会抛出RangeError: Maximum call stack size exceeded.我想知道是否有任何方式使用多个数据库与猫鼬或任何解决办法这个问题?因为我觉得猫鼬很容易很快。或者其他模块作为推荐?
3 回答
慕神8447489
TA贡献1780条经验 获得超1个赞
-app_root/--foo_app/---db_access.js---foo_db_connect.js---node_modules/----mongoose/--bar_app/---db_access.js---bar_db_connect.js---node_modules/----mongoose/
var mongoose = require('mongoose');mongoose.connect('mongodb://localhost/foo_db');module.exports = exports = mongoose;
var mongoose = require('mongoose');mongoose.connect('mongodb://localhost/bar_db');module.exports = exports = mongoose;
var mongoose = require("./foo_db_connect.js"); // bar_db_connect.js for bar app
慕莱坞森
TA贡献1810条经验 获得超4个赞
createConnection()
能,会,可以
var conn = mongoose.createConnection('mongodb://localhost/testA');var conn2 = mongoose.createConnection('mongodb://localhost/testB');// stored in 'testA' databasevar ModelA = conn.model('Model', new mongoose.Schema({ title : { type : String, default : 'model in testA database' }}));// stored in 'testB' databasevar ModelB = conn2.model('Model', new mongoose.Schema({ title : { type : String, default : 'model in testB database' }}));
慕的地6264312
TA贡献1817条经验 获得超6个赞
var Mongoose = require('mongoose').Mongoose;var instance1 = new Mongoose();instance1.connect('foo');var instance2 = new Mongoose();instance2.connect('bar');
添加回答
举报
0/150
提交
取消