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