mongoDB Atlas ♥︎ Sailsjs(水线sails-mongo适配器)

mongoDB Atlas ♥︎ Sailsjs (waterline sails-mongo adapter)

我刚刚创建了一个 MongoDB Atlas 帐户。

我正在使用带水线的风帆 sails-mongo 适配器

但我无法通过我的应用程序连接。

但似乎 sails-mongo 无法使用该数据库,这需要非常 up-to-date mongo 版本

是否有人在使用 MDB Atlas && sailsjs? (我考虑过重构我的应用程序,但它开始变得庞大而且似乎无法使用 "mongodb" 适配器)

版本: -节点:6.3.1 - npm:3.10.6 - mongo(shell):3.4.2 - sails-mongo npm 模块:sails-mongo@0.12.2

错误信息提示连接超时。第一步是检查您的配置,它是否在 config/connections.js?

中正确填充了这种格式
  // MongoDB is the leading NoSQL database.
  // http://en.wikipedia.org/wiki/MongoDB
  //
  // Run:
  // npm install sails-mongo
  //
  someMongodbServer: {
    adapter: 'sails-mongo',
    host: 'localhost',
    port: 27017,
    // user: 'username',
    // password: 'password',
    // database: 'your_mongo_db_name_here'
  },

如果这不是您的配置,则可能与您的 sails、sails-mongo 或 Mongo DB 版本不兼容。你是哪个版本的运行?

it seems like sails-mongo is just not working with that db, which requires a very up-to-date mongo version

您一语中的——Sails v0.12.x 的当前 sails-mongo 适配器使用了不支持的本机 MongoDB 驱动程序版本使用 Atlas 所需的所有功能(例如 authSource)。请参阅 Github 上的 this issue

我们正在完成 Sails 1.0 的 sails-mongo 适配器的最后部分,它支持最新的选项并已成功通过 Atlas 测试,所以现在可能是开始准备 upgrade to version 1.0。在 Sails 1.0 发布后,我们将只对使用 v0.12.x 的模块进行错误修复和安全补丁。

大家好,感谢您的提示和 SailsJS 团队,我能够找出一些可以帮助您解决此问题的方法(我能够做到):

  • 将您的 sails-mongo 更新到 v0.12.3 npm install sails-mongo@0.12.3 --save
  • 更新 sails-mongo 对 v2.2.25 的 mongodb 依赖。您可以进行此编辑 package.json。该版本包含对 replicaSets 连接的修复:https://github.com/mongodb/node-mongodb-native/commit/915d5c8a765151fb14942445a92d92a0e9e9c942#diff-88dc7475eedf918122374be6d7c2c151R12
  • 确保 mongodb 的 mongodb-core 版本至少为 v2.1.9。
  • 现在我直接去创建我的连接是这样的:

    { adapter: 'sails-mongo', url: 'mongodb://user:pass@server-1.mongodb.net:27017,server-2.mongodb.net:27017,server-3.mongodb.net:27017/test?ssl=true&replicaSet=server-&authSource=admin', ssl: true }

    是的,需要重新添加ssl参数

通过查看 sails v1.0 代码,该更新将修复丢失的东西;)感谢 SailsJS 团队!