相关疑难解决方法(0)

在Sails.js中处理数据库环境配置

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

注意如果模型使用了与适配器的任何连接,则无论模型是否实际使用它们,都将在sails.lift上加载与该适配器的所有连接.在上面的示例中,如果模型配置为使用localMysql连接,则localMysql和remoteMysql都将尝试在运行时进行连接.因此,最好按环境拆分连接配置并将其保存到适当的特定于环境的配置文件中,否则请注释掉任何不希望处于活动状态的连接.

如何配置生产服务器的连接?

我的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'
  }   
};
Run Code Online (Sandbox Code Playgroud)

在我的环境配置文件我有:

development.js

module.exports = {
  models: {
    connection: 'mongoDev'
  }    
};
Run Code Online (Sandbox Code Playgroud)

production.js

module.exports = {
  models: {
     connection: 'mongoLive'
  },
  port: 3000,
};
Run Code Online (Sandbox Code Playgroud)

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

[Error: failed to connect to [localhost:27017]]
Run Code Online (Sandbox Code Playgroud)

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

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

$ sails -v
info: v0.9.9
Run Code Online (Sandbox Code Playgroud)

跑步时我会得到一些不同的东西 …

javascript database-connection node.js sails.js sails-mongo

7
推荐指数
1
解决办法
3547
查看次数