Sails mongo 重新连接

Posted

技术标签:

【中文标题】Sails mongo 重新连接【英文标题】:Sails mongo reconnect 【发布时间】:2017-09-30 15:34:16 【问题描述】:

我正在使用sails 1.0.0-37 和sails-mongo 1.0.0-10 。 当风帆升起时,如果 mongo db 服务器已启动并正在运行,则一切正常。如果 mongo db 出现故障,并且 node.js 作为功能的一部分尝试访问 mongo db 并且超时,则会向用户显示内部服务器错误。这一切都好。但是,当 mongo 重新启动时,sails 不再重新连接它并抛出此错误:

" AdapterError: 来自数据库适配器的意外错误:fn 调用了它的error exit with: MongoError: Topology was destroyed "

我将 autoReconnect: true 设置为 mongodb 适配器选项的一部分。仅当 node.js 在关闭时不尝试访问 mongodb 服务器时,此重新连接才有效。如何解决此问题?否则无法在 prod 中使用sails 1.0 和sails-mongo?

【问题讨论】:

您好,遇到同样的问题。你找到解决办法了吗? 【参考方案1】:

我遇到了同样的问题,这里是解释和解决方案:

如果不设置“reconnectTries”,默认设置为 30。 30 次尝试后,sails 无法连接到 mongo 并抛出“拓扑已破坏”。

对我来说,解决方案是将reconnectTries 设置为Number.MAX_VALUE

default: 
  adapter: 'sails-mongo',
  url: 'mongodb://admin:admin123@127.0.0.1:27017/datastore?authSource=admin',
  reconnectTries: Number.MAX_VALUE,
  reconnectInterval: 1000

我希望这会有所帮助。

【讨论】:

以上是关于Sails mongo 重新连接的主要内容,如果未能解决你的问题,请参考以下文章

npm install 不在 GitHub 上安装最新版本

Sails-mongo 适配器,标准化错误消息

Sails Js - 防止非模型字段保存在 mongo 文档中

如何使用 Sails.JS + GridFS 从 Mongo 检索图像文件?

_id 找不到带有 Mongo 的 Sails.js

如何将凉亭组件与sails.js 连接?