Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Sails.js中处理数据库环境配置_Javascript_Node.js_Database Connection_Sails.js_Sails Mongo - Fatal编程技术网

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

Javascript 在Sails.js中处理数据库环境配置,javascript,node.js,database-connection,sails.js,sails-mongo,Javascript,Node.js,Database Connection,Sails.js,Sails Mongo,我的问题与以下引述有关: 注意:如果模型使用了适配器的任何连接,那么该适配器的所有连接都将加载到sails.lift上,无论模型是否实际使用它们。在上面的示例中,如果将模型配置为使用localMysql连接,则localMysql和remoteMysql都将在运行时尝试连接。因此,最好按环境将连接配置拆分,并将其保存到相应的特定于环境的配置文件中,或者注释掉不希望激活的任何连接 如何配置生产服务器的连接 我的connections.js文件如下所示: module.exports.connect

我的问题与以下引述有关:

注意:如果模型使用了适配器的任何连接,那么该适配器的所有连接都将加载到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'
  }   
};
在我的环境配置文件中,我有:

development.js

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

module.exports = {
  models: {
    connection: 'mongoDev'
  }    
};
module.exports = {
  models: {
     connection: 'mongoLive'
  },
  port: 3000,
};
这在我的本地机器上工作,因为生产数据库服务器位于外部服务器上。 在生产环境中,我遇到以下错误:

[Error: failed to connect to [localhost:27017]]
如果我从connections对象中删除mongoDev对象,它就会工作

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

$ sails -v
info: v0.9.9
当我运行
帆式升降机时,我得到了一些不同的东西:

info:    Sails         
info:    v0.10.5

您希望将实际的连接定义保存在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,
};

这似乎对我不起作用。您知道为什么必须在环境设置中执行此操作吗?有什么东西迫使它回到本地吗?这个答案与为什么这是一个问题有关