SailsJS部署到Heroku,连接到Mongolabs MongoDB

时间:2015-07-08 19:39:34

标签: mongodb heroku sails.js sails-mongo

我现在正在尝试我的第一个Heroku部署SailsJS API。我的应用使用SailsJS v0.11和sails-mongo 0.11.2。

我已更新config/connections.js以将连接信息包含在我Mongolab免费托管的MongoDB数据库中。

mongodb: {
    adapter: 'sails-mongo',
    url: "mongodb://db-user:password123@ds047812.mongolab.com:47812/testing-db"
}

还更新config/models.js以指向该适配器。

module.exports.models = {
    connection: 'mongodb',
    migrate: 'safe'
};

这基本上是我在本地运行代码后所做的全部更改,当我部署到Heroku时应用程序崩溃并且我收到此错误...

/home/zacharyhustles/smallChangeAPI/node_modules/connect-mongo/lib/connect-mongo.js:186
      throw err;
            ^
at Socket.emit (events.js:107:17)
2015-07-08T19:37:00.778316+00:00 app[web.1]:     
at Socket.<anonymous> (/app/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/connection/connection.js:534:10)
Error: Error connecting to database: failed to connect to [localhost:27017]

如何摆脱这种情况,并确保Sails不尝试连接到localhost db?

1 个答案:

答案 0 :(得分:2)

好的,问题在于存储会话。

我的解决方案是设置Redis数据库来存储会话。

config/sessions.js中,确保除了会话存储所需的方法外,所有内容都已注释掉。

我看起来像这样:

adapter: 'redis',
host: 'example.redistogo.com',
port: 1111,
db: '/redistogo',
pass: 'XXXXXYYYYYYXYXYXYYX',

这解决了我发布的问题,希望这可以帮助其他人。