我正在做一个包含子项目的 Node.js 项目。一个子项目将有一个 Mongodb 数据库,Mongoose 将用于包装和查询数据库。但问题是
require()
我尝试在猫鼬中使用createConnection()and openSet(),但这不是解决方案。
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实例。
-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 访问多个数据库。