我正在做一个包含子项目的Node.js项目。一个子项目将拥有一个Mongodb数据库,Mongoose将用于包装和查询db。但是问题是
require()
我尝试使用createConnection()和openSet()猫鼬,但这不是解决方案。
createConnection()
openSet()
我尝试过深度复制猫鼬实例(http://blog.imaginea.com/deep-copy-in- javascript/),以将新的猫鼬实例传递给子项目,但是它抛出RangeError: Maximum call stack size exceeded。
RangeError: Maximum call stack size exceeded
我想知道是否存在将多个数据库与猫鼬结合使用或解决此问题的任何解决方法?因为我认为猫鼬非常容易和快速。还是任何其他模块作为建议?
您可以做的一件事是,每个项目可能都有子文件夹。因此,在该子文件夹中安装mongoose并从每个子应用程序中自己的文件夹中进行require()猫鼬。并非来自项目根目录或全局。因此,一个子项目,一个猫鼬安装和一个猫鼬实例。
-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/
在foo_db_connect.js中
var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/foo_db'); module.exports = exports = mongoose;
在bar_db_connect.js中
var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/bar_db'); module.exports = exports = mongoose;
在db_access.js文件中
var mongoose = require("./foo_db_connect.js"); // bar_db_connect.js for bar app
现在,您可以使用猫鼬访问多个数据库。