MongoDB:如何解决连接超时错误?

时间:2018-08-08 04:18:11

标签: mongodb mongoose

我正在使用mongoosejs连接到mongodb,这是我的连接选项

const optionsMongoose = {
  poolSize: 10, 
  bufferMaxEntries: 0,
  connectTimeoutMS: 10000, 
  socketTimeoutMS: 45000,
  family: 4 
}; 

mongoose.connect(process.env.MONGO_URI,optionsMongoose);

,但是过了一段时间,对MongoDB的所有请求将开始超时。在我的数据库监视工具中,我可以看到当前的活动连接为10,但是当前没有对服务器的请求。我确信我在连接选项上做错了。请帮我找出来吗?

1 个答案:

答案 0 :(得分:1)

您尝试过keepAlivereconnectTries吗?

mongoose.connect(myUri, {
  socketTimeoutMS: 45000,
  keepAlive: true,
  reconnectTries: 10
});

尝试上述方法,看看是否有帮助。我们需要知道它是在关闭连接还是在您的code/find发生问题的地方。

keepAlive上:

  

对于长时间运行的应用程序,通常谨慎地启用keepAlive。   如果没有它,一段时间后您可能会开始看到“连接   似乎没有原因的“关闭”错误。如果是这样,请阅读后   为此,您可以决定启用keepAlive: