处理Sails.js中的数据库环境configuration

我所遇到的问题与以下官方文档的引用有关:

注意如果模型使用适配器的任何连接,那么所有连接到该适配器的连接都将被加载到sails.lift上,无论模型是否实际使用它们。 在上面的示例中,如果将模型configuration为使用localMysql连接,则localMysql和remoteMysql都将在运行时尝试连接。 因此,根据环境将连接configuration拆分并将其保存到适当的环境特定configuration文件中,或者注释掉不想激活的任何连接。

如何configuration生产服务器的连接?

我的connections.js文件如下所示:

module.exports.connections = { mongoDev: { adapter: 'sails-mongo', host: 'localhost', port: 27017, user: 'username', password: 'password', database: 'database' }, mongoLive: { adapter: 'sails-mongo', host: 'host.mongolab.com', port: 31681, user: 'user', password: 'password', database: 'database' } }; 

并在我的环境configuration文件,我有:

development.js

 module.exports = { models: { connection: 'mongoDev' } }; 

production.js

 module.exports = { models: { connection: 'mongoLive' }, port: 3000, }; 

这适用于我的本地计算机,因为生产数据库服务器位于外部服务器上。 在生产环境中,我收到以下错误:

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

它工作,如果我从连接对象中删除mongoDev对象。

我也尝试过使用adaptors.js,但这只会导致一些折旧错误。

 $ sails -v info: v0.9.9 

运行sails lift时,我得到了不同的东西:

 info: Sails info: v0.10.5 

Solutions Collecting From Web of "处理Sails.js中的数据库环境configuration"

您想要将实际的连接定义保存在development.js或production.js中,并将其从connections.js中移除。 这有点不直观。

development.js

 module.exports = { connections : { mongoDev: { adapter: 'sails-mongo', host: 'localhost', port: 27017, user: 'username', password: 'password', database: 'database' } }, models: { connection: 'mongoDev' } }; 

production.js

 module.exports = { connections : { mongoLive: { adapter: 'sails-mongo', host: 'host.mongolab.com', port: 31681, user: 'user', password: 'password', database: 'database' } }, models: { connection: 'mongoLive' }, port: 3000, };