我在一个机器上运行两个 Node 服务器(端口 3030 和 3031),并尝试使用 Mongoose 连接到同一 MongoDB 服务器(不同的数据库),但它只允许一个应用程序连接,而另一个应用程序失败。我试过:
// App 1
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/db1');
// App 2
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/db2');
这些连接是互斥的。当应用 1 连接时,应用 2 失败并显示“连接关闭”,反之亦然。
//App 1
var mongoose = require('mongoose');
var conn = mongoose.createConnection('mongodb://mongoserver/db1');
var model = conn.model('collection1');
//App 2
var mongoose = require('mongoose');
var conn = mongoose.createConnection('mongodb://mongoserver/db2');
var model = conn.model('collection1');
相同的结果。
有没有人能够在不创建某种代理应用程序的情况下使其工作??同一个盒子,多个 Node 应用程序,同一个 MongoDB 服务器,不同的数据库,同时。
最佳答案
事实证明,这不是 Node/mongoose 的问题,而是 MongoDB 服务器本身的问题。我已达到最大容量。
The limitation of connections is from operating system at 1024 open files ( 80% are used for connections).
所以我有 820 个可用连接,并且我正在使用所有这些连接。我清除了连接并且它起作用了。
关于node.js - 连接已关闭 : Multiple node apps connecting to same MongoDB server using Mongoose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23400037/