node.js - 错误 : no open connections at Db. _executeQueryCommand Node.js

标签 node.js mongodb session mongoose connect-mongo

我有一个与 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/

相关文章:

php - 这是验证我的 CSRF token 的正确方法吗?

PHP Laravel : How to set or get Session Data?

php - Zend Framework 不活动后自动注销

javascript - 如何在 Express 中访问我的 req.body data/json?

javascript - 为什么 Axios 不返回 promise ?

javascript - pm2 停止运行我的程序。为什么以及何时?

javascript - 如何找到 JSON 对象数组的差异?

javascript - 我可以使用 express.js 创建 web api 而没有安装 node.js 吗?

mongodb - 通过 mongodb River 在 elasticsearch 中创建索引的映射未生效

python - PyMongo 和 Flask 的 Jsonify 包含转义斜杠