5

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

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

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

  • 一切都是最新的。
  • 我可以连接到任何其他数据库(localhost、digitalocean 服务器……)
  • 我还可以通过他们的工具(MongoDB Compass)和带有 mongo cmd 的 shell 连接到该 MongoDB Atlas 数据库

但似乎sails-mongo 只是无法使用该数据库,这需要非常最新的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

4

3 回答 3

15

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

  • 将您的sails-mongo 更新到 v0.12.3npm install sails-mongo@0.12.3 --save
  • 将sails-mongo 的mongodb 依赖更新到v2.2.25。您可以执行此编辑 package.json。该版本包括对副本集连接的修复: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 团队!

于 2017-04-11T04:51:26.480 回答
4

似乎sails-mongo 只是无法使用该数据库,这需要非常最新的mongo版本

你一针见血——目前 Sails v0.12.x 的sails-mongo 适配器使用的本机MongoDB 驱动程序版本不支持使用Atlas 所需的所有功能(例如authSource)。在 Github 上查看此问题。

我们正在完成sails-mongoSails 1.0 适配器的最后一点,它支持最新的选项并已通过 Atlas 成功测试,因此现在可能是开始准备升级到 1.0 版本的好时机。Sails 1.0 发布后,我们只会对适用于 v0.12.x 的模块进行错误修复和安全补丁。

于 2017-03-10T19:27:52.060 回答
0

错误消息表明连接超时。第一步是检查您的配置,是否在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 版本不兼容。您正在运行哪些版本?

于 2017-03-10T17:54:08.083 回答