问题描述:
我在我的电脑开启了一个mongodb数据库的服务,并配置了用户认证和远程连接。其他电脑通过我的ip地址以及设置的端口、配置的用户等连接到我的数据库,并可以进行读写操作。
但是,当远程连接我的数据库的电脑手动断开网络,再次接入网络的时候,或者长时间没有对我的数据库进行查询读写操作,就会报错,报错信息:
"MongoError: Topology was destroyed"
而,我在本地进行了同样的测试,并没有问题。
我的方法?
于是查了一些资料,在mongoose连接数据库的时候,加上一些参数,如下:
var options = {
server: { socketOptions: { keepAlive: 1, connectTimeoutMS: 30000 } },
replset: { socketOptions: { keepAlive: 1, connectTimeoutMS: 30000 } }
};
mongoose.connect(secrets.db, options);
或者是这样的:
var options = { server: {
// sets how many times to try reconnecting
reconnectTries: Number.MAX_VALUE,
// sets the delay between every retry (milliseconds)
reconnectInterval: 1000
}
}
mongoose.connect(secrets.db, options);
经过一番尝试,依然没有解决上述问题。
现在主要的问题在于,我本地就没有这样的问题..
我做了如下的改动
然后再也没有报过我问题中描述的错误。