当前位置: 首页 > 面试题库 >

猫鼬自动重新连接选项

董和风
2023-03-14
问题内容

我正在尝试通过Mongoose设置MongoDB自动重新连接功能。我尝试通过该选项的所有方式均无效,或者至少reconnected未发出该事件。

我尝试过的

mongoose.createConnection("mongodb://localhost:27017/test", { auto_reconnect: true });
mongoose.createConnection("mongodb://localhost:27017/test", { autoReconnect: true });
mongoose.createConnection("mongodb://localhost:27017/test", { server: { auto_reconnect: true } });
mongoose.createConnection("mongodb://localhost:27017/test", { server: { autoReconnect: true } });

如果其中之一是正确的,reconnected则应触发该事件并在控制台中记录一条消息,但是这永远不会发生。

如果重新连接前有延迟,有人知道如何配置吗?

提前致谢

对于任何寻找到这一点,看看这个和这个问题在猫鼬库。


问题答案:

我和您有同样的问题,而robertklep的解决方案对我也不起作用。我发现MongoDB服务停止时,触发了一个错误事件,但是connection.readyState仍然为1(已连接)。这可能就是为什么它没有自动重新连接的原因。

这就是我现在所拥有的:

  var db = mongoose.connection;

  db.on('connecting', function() {
    console.log('connecting to MongoDB...');
  });

  db.on('error', function(error) {
    console.error('Error in MongoDb connection: ' + error);
    mongoose.disconnect();
  });
  db.on('connected', function() {
    console.log('MongoDB connected!');
  });
  db.once('open', function() {
    console.log('MongoDB connection opened!');
  });
  db.on('reconnected', function () {
    console.log('MongoDB reconnected!');
  });
  db.on('disconnected', function() {
    console.log('MongoDB disconnected!');
    mongoose.connect(dbURI, {server:{auto_reconnect:true}});
  });
  mongoose.connect(dbURI, {server:{auto_reconnect:true}});


 类似资料:
  • 问题内容: 我从Mongoose网站上阅读了快速入门,几乎复制了代码,但是无法使用Node.js连接MongoDB。 这是我的代码。控制台仅打印,不打印。我哪里错了? 问题答案: 调用时,它将建立与数据库的连接。 但是,您在以后的某个时间点(处理请求时)附加了事件侦听器,这意味着该连接可能已经处于活动状态,并且该事件已经被调用(您尚未监听它)。 。 您应该重新排列代码,以使事件处理程序尽可能(及时

  • 问题内容: Node,Mongoose和Mongodb的新手-尚未阅读源代码… 我有一个Node应用程序,它将打开一个文件,将行解析为记录并将记录保存到mongodb。记录是Mongoose模型对象,要将它们保存到mongodb中,我要做的就是调用它们上的方法。 所以现在我都担心猫鼬正在管理的联系。我需要手动关闭它吗?如果是这样,我什么时候应该关闭它(由于所有事情都是异步发生的,所以很难说何时关闭

  • 我有一个Spring Boot应用程序,我使用ElasticsearchTemplate连接到我的ElasticSearch。然而,当它工作时,我关闭了Elasticsearch,每次我使用ElasticTemplate方法时,我都会得到一个组织。elasticsearch。客户运输NoNodeAvailableException。这很好,因为ElasticSearch不起作用。 然而,当Elas

  • 问题内容: 如果猫鼬无法连接到数据库,如何设置错误处理的回调? 我知道 但是是否有类似的东西 ? 问题答案: 连接后,您可以在回调中获取错误:

  • 下面是我到目前为止的代码: 有人能解释一下在和情况下我该做什么吗?以及如何知道网络已断开并重新连接?

  • 问题内容: 我已经查看了网站上的一些问题,但还没有弄清楚我在做什么错。我有一些这样的代码: 我不确定在中间应该做什么以使其正确更新数据库。我已经尝试了很多东西,但是无法撤消以找出所有我尝试过的东西。我一整夜都花了时间,我希望它能正常工作。 这几乎是我想要的,我想知道是否有任何方法可以在条件部分 我会继续玩弄它。 问题答案: 这正是我想要的,只有一行。:D完美!