【问题标题】:How to setup different environments and corresponding configurations under sails.js?在sails.js下如何设置不同的环境和相应的配置?
【发布时间】:2014-02-01 20:01:13
【问题描述】:

我正在将 2010 RoR 应用程序迁移到 Sails.js。从表面上看,Sails.js 看起来像是将应用程序迁移到 Node.js 平台的最佳框架。在此过程中,我遇到了一个限制 - 似乎sails 仅通过 local.js 和生产环境迎合开发环境。

在 RoR 下,我在 config 下有一个环境文件夹,其中包含 dev、test、staging、production 等 ruby​​ 文件,其中包含为该环境定义的常量、日志记录级别等。我正在寻找 Sails.js 下相同结构的示例。

谢谢,

_K

【问题讨论】:

    标签: ruby-on-rails environment-variables sails.js


    【解决方案1】:

    SailsJS 人员会告诉您,最佳做法是为每个环境创建和部署一个 local.js 文件,并在您的存储库中不跟踪它。

    但是,如果您的项目位于私人存储库中并且您愿意在其中保存敏感信息,则可以使用 process.env.NODE_ENV 编写条件。例如,您可以在 adapters.js 文件中为不同的环境定义不同的适配器:

    var production = {
      'default': 'mongo',
      mongo: {
        module: 'sails-mongo',
        url: "mongodb://[user]:[password]@[host]:[port]/[db-name]",
        schema: true
      }
    };
    
    var staging = {
      'default': 'mongo',
      mongo: {
        module: 'sails-mongo',
        url: "mongodb://[user]:[password]@[host]:[port]/[db-name]",
        schema: true
      }
    };
    
    var development = {
      'default': 'disk',
      disk: {
        module: 'sails-disk'
      }
    };
    
    var setAdapter = function() {
      var env = process.env.NODE_ENV;
    
      if (env === 'production') {
        return production;
      } else if (env === 'staging') {
        return staging;
      } else {
        return development;
      }
    };
    
    var adapters = setAdapter();
    
    module.exports.adapters = adapters;
    

    只要确保在服务器上设置了 NODE_ENV 环境变量,就可以开始了。

    【讨论】:

    • 谢谢乔恩。一旦我验证,我会试一试并接受它。我知道,使用最前沿的东西需要创造性思维,这可能是目前最好的解决方案。
    • 好的。检查并像魅力一样工作!我最终创建了在 constants.js 中引用的 environment.js,而后者又在各处用于引用常量。干杯。抱歉,由于菜鸟业力低,无法投票。
    猜你喜欢
    • 2016-04-27
    • 2023-03-08
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 2011-03-13
    • 2015-06-02
    • 2019-01-10
    • 1970-01-01
    相关资源
    最近更新 更多