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

时间:2017-03-10 11:05:54

标签: mongodb sails.js sails-mongo atlas

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

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

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

  • 一切都是最新的。
  • 我可以连接到任何其他数据库(localhost,digitalocean服务器......)
  • 我也可以通过他们的工具(MongoDB Compass)和使用mongo cmd的shell连接到MongoDB Atlas数据库

但似乎sails-mongo只是不使用该数据库,这需要一个非常新的mongo版本

是否有其他人使用MDB Atlas&& sailsjs? (我考虑过重构我的应用程序,但它已经开始成为huuge而且似乎不可能使用" mongodb"适配器)

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

3 个答案:

答案 0 :(得分:13)

嘿,感谢您的提示和SailsJS团队,我能够找到一些可以帮助您解决这个问题的事情(我能够):

  • 将您的sails-mongo更新为v0.12.3 npm install sails-mongo@0.12.3 --save
  • 将sails-mongo的mongodb依赖项更新为v2.2.25。你可以这样编辑package.json。该版本包含对replicaSet连接的修复: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团队!

答案 1 :(得分:4)

  

似乎sails-mongo只是不使用该数据库,这需要一个非常新的mongo版本

你击中了头部 - Sails v0.12.x的当前sails-mongo适配器使用的本机MongoDB驱动程序版本不支持使用Atlas所需的所有功能(例如{{ 1}})。请参阅Github上的this issue

我们正在完成Sails 1.0的authSource适配器上的最后一位,它支持最新的选项并且已经使用Atlas成功测试过,所以现在可能是开始准备{{3 }}。在Sails 1.0发布之后,我们只会对与v0.12.x一起使用的模块进行错误修复和安全补丁。

答案 2 :(得分: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版本不兼容。您运行的是哪些版本?