我有一个与express框架一起使用的节点应用程序。此应用程序运行平稳。但突然间,在一段时间后,它开始出现错误
"错误:Db_executeQueryCommand处没有打开的连接"
从上面错误的描述中,我只是了解到,节点应用程序可能无法连接到数据库。
但是,尽管出现了这个错误,节点应用程序呈现的一些页面仍然能够运行。
我想补充的一件事是,没有特定的页面会出现这个错误,我的意思是,假设第一次出现这个错误是在"/foo"页面,而不是在"/foo1"one_answers"/foo2"中。
但是,假设当我随机刷新页面时,之前加载错误的页面,即"/foo"可能不会出错,而之前成功加载的页面,如"/foo1"one_answers"/foo2"可能会出错。
节点应用程序的并发用户数量可能不会更多,大约为450。
详细信息:1.节点版本:v0.10.292.Express版本:4.9.03.MongoDB版本:2.4.104.操作系统Linux
我寻找了许多解决方案,但没有找到一个强有力的原因,甚至没有找到解决方案。
任何帮助都将不胜感激。
检查此问题,建议对mongodb连接使用{auto_reconnect:true}。
你也可以试试下面的
// 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);