1

我有一个与 express 框架一起使用的节点应用程序。此应用程序运行流畅。但是突然,在某个时间点之后,它开始给出错误

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

从上述错误的描述中,我明白了,节点应用程序可能无法连接到数据库。

但是,尽管出现此错误,节点应用程序呈现的某些页面仍然能够运行。

我要补充的一件事是,没有某个页面出现此错误,我的意思是说,假设第一次,我在“/foo”页面中收到此错误,而不是在“/foo1”中,并且“/foo2”。

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

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

详细信息: 1. Node 版本:v0.10.29 2. Express 版本:4.9.0 3. MongoDB 版本:2.4.10 4. OS Linux

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

任何帮助将不胜感激。

4

1 回答 1

0

检查这个问题,它建议使用 {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);
于 2015-03-30T13:25:52.337 回答