我正在将2010 RoR应用迁移到Sails.js。从表面上看,Sails.js看起来像是将应用程序迁移到Node.js平台的最佳框架。在这个过程中,我遇到了一个限制 - 看起来风帆只能通过local.js和生产环境迎合开发环境。
在RoR下,我在config下有一个环境文件夹,其中包含dev,test,staging,production等ruby文件,其中包含为该环境定义的常量,日志记录级别等。我正在寻找Sails.js下相同结构的一个例子。
谢谢,
_K
答案 0 :(得分: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
环境变量,就可以了。