我有一个与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
我搜索了许多解决方案,但没有找到一个强有力的原因甚至解决方案。
非常感谢任何帮助。
答案 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);