使用远程Mongodb时无法加载Sails

时间:2014-04-01 01:07:50

标签: mongodb sails.js

我的Sail应用程序在连接到我的本地mongo db时运行,但是当我尝试使用Modulus托管的数据库进行连接时,它将无法正常加载。

我已正确设置连接并通过IDE

进行测试
connections.js:
    // MONGO DB reference for the database
    cogspeed: {
    adapter   : 'sails-mongo',
    //host      : 'localhost',
    host      : 'novus.modulusmongo.net',
    port      : 27017,
    user      : '*********',
    password  : '***********',
    database  : '**********'
  },

我得到的错误是:

C:\Projects\gmm\cogspeed>sails lift

info: Starting app...

error: A hook (`orm`) failed to load!
error: Error: failed to connect to [localhost:27017]
    at null.<anonymous> (C:\Projects\gmm\cogspeed\node_modules\sails-mongo\node_modules\mongodb\lib\mongodb\conne
ction\server.js:553:74)
    at EventEmitter.emit (events.js:106:17)
    at null.<anonymous> (C:\Projects\gmm\cogspeed\node_modules\sails-mongo\node_modules\mongodb\lib\mongodb\conne
ction\connection_pool.js:140:15)
    at EventEmitter.emit (events.js:98:17)
    at Socket.<anonymous> (C:\Projects\gmm\cogspeed\node_modules\sails-mongo\node_modules\mongodb\lib\mongodb\con
nection\connection.js:512:10)
    at Socket.EventEmitter.emit (events.js:95:17)
    at net.js:441:14
    at process._tickDomainCallback (node.js:459:13)

为什么Sails仍在关注localhost?

提前致谢!

5 个答案:

答案 0 :(得分:6)

我有同样的问题。事实证明,在connection.js中使用相同的适配器连接多个连接会导致此问题。我在帆0.10.5

答案 1 :(得分:3)

确认您的密码不包含&#39; @&#39;字符。由于node-mongodb-native的当前实现,它会弄乱你的连接字符串。

答案 2 :(得分:1)

/config/local.js文件仍然有一个指向本地主机的mongo适配器。

答案 3 :(得分:1)

Sails still(v 0.11.0)在 /config/connections.js 配置文件中有几个相同类型的适配器存在问题。在部署模数后我遇到了同样的问题,而且支持无法帮助我。我花了几个小时试图调试它......但是解决方法非常简单。而不是将数据库连接参数放入 connections.js ,而是将它们直接放入特定于环境的配置文件中,如下所示:

// config/env/development.js
module.exports = {

  connections : {
       mongo: {
          adapter: 'sails-mongo',
          host: 'localhost',
          port: 27017,
          database: 'your-db-name'
      },
  },
  // your other dev configs
};

生产:

// config/env/development.js
module.exports = {

  connections : {
       mongo: {
          adapter: 'sails-mongo',
          host: 'your-remote-mongo-host',
          port: 27017,
          user: 'your-remote-user',
          password: 'your-remote-db-password',
          database: 'your-remote-db-name'
      },
  },
  // your other dev configs
};

您的 /config/models.js 看起来像这样:

module.exports = {

  connection : 'mongo',

  // your other model configs
};

PS:此问题已经报告给sails.js团队https://github.com/balderdashy/sails/issues/2480

答案 4 :(得分:0)

如果错误显示

error: Error: failed to connect to [localhost:27017]

然后, Mongo 没有运行。您可以使用命令

启动它
mongod
愚蠢的错误,但也发生了......


如果错误显示错误:MongoError: auth fails,则此解决方案可能适用于您:https://stackoverflow.com/a/29335121/2615737