我有一个与 Express 框架一起使用的 Node 应用程序。该应用程序运行顺利。但突然间,过了某个时间点,它开始出现错误,如下所示
“错误:Db._executeQueryCommand 处没有打开的连接”
从上述错误的描述中,我刚刚了解到, Node 应用程序可能无法连接到数据库。
但是,尽管出现此错误,由 Node 应用程序呈现的某些页面仍然可以运行。
我要补充的一件事是,没有特定的页面会出现此错误,我的意思是说,假设第一次,我在“/foo”页面中收到此错误,而不是在“/foo1”和“/foo2”中。
但是,假设,当我随机刷新页面时,之前加载错误的页面,即“/foo”可能不会出错,而之前加载成功的页面,即“/foo1”和“/foo2”,可能会出错。
Node 应用的并发用户数可能不会再多了,大概在450左右。
详细信息: 1. Node 版本:v0.10.29 2. Express版本:4.9.0 3.MongoDB版本:2.4.10 4.操作系统Linux
我搜索了很多解决方案,但没有找到强有力的原因,甚至没有找到相同的解决方案。
任何帮助将不胜感激。
最佳答案
检查this issue ,建议使用 {auto_reconnect: true} 进行 mongodb 连接。
您也可以尝试以下操作
// Connect to mongodb
var connect = function () {
var options = { server: { socketOptions: { keepAlive: 1 } } };
mongoose.connect('mongodb://localhost/db1', options);
};
connect();
mongoose.connection.on('error', console.log);
mongoose.connection.on('disconnected', connect);
关于node.js - 错误 : no open connections at Db. _executeQueryCommand Node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29342904/