2014-01-13 45 views
1

我正在将2010 RoR应用程序迁移到Sails.js。从表面上看,Sails.js看起来是将应用程序迁移到Node.js平台的最佳框架。在这个过程中,我遇到了一个限制 - 它看起来像帆只通过local.js和生产环境迎合开发环境。如何在sails.js下设置不同的环境和相应的配置?

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

感谢,

_K

回答

0

的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环境变量在服务器上,你是好去。

+0

谢谢乔恩。一旦我确认,我会给它一个旋转并接受它。我知道,从事最尖端的工作需要创造性思维,这可能是现在最好的解决方案。 – kkotak

+0

好的。检查出来,像魅力一样工作!我最终创建了constants.js中引用的environment.js,该文件随后用于引用常量。干杯。很抱歉,由于noob低业障,不能投票。 – kkotak

相关问题