错误:Db._executeQueryCommand Node.js上没有打开的连接

时间:2015-03-30 09:41:27

标签: node.js mongodb session mongoose connect-mongo

我有一个与express框架一起使用的节点应用程序。此应用程序运行顺利。但突然间,经过一段时间后,它开始出现错误

“错误:Db._executeQueryCommand没有打开的连接”

从上面的错误描述中,我刚刚得到它,节点应用程序可能无法连接到数据库。

但是,尽管收到此错误,节点应用程序呈现的某些页面仍可以运行。

我想添加的一件事是,没有某个页面,我收到此错误,我的意思是说,假设第一次,我在“/ foo”页面中得到此错误,而不是“/” foo1“和”/ foo2“。

但是,假设,当我随机刷新页面时,之前加载错误的页面,即“/ foo”可能不会出错,并且之前成功加载页面,即“/ foo1”和“/ foo2”,可能会给出错误。

节点应用程序的并发用户数可能不会更多,大约是450左右。

详细说明:  1.节点版本:v0.10.29  2.快速版:4.9.0  3. MongoDB版本:2.4.10  4. OS Linux

我搜索了许多解决方案,但没有找到一个强有力的原因甚至解决方案。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

检查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);