如何在sails.js下设置不同的环境和相应的配置?
我正在将2010 RoR应用程序迁移到Sails.js。 从表面上看,Sails.js看起来像是将应用程序迁移到Node.js平台的最佳框架。 在这个过程中,我遇到了一个限制 – 看起来风帆只能通过local.js和生产环境迎合开发环境。
在RoR下,我在config下有一个环境文件夹,其中包含dev,test,staging,production等ruby文件,其中包含为该环境定义的常量,日志记录级别等。 我正在寻找Sails.js下相同结构的一个例子。
谢谢,
_K
SailsJS人员会告诉您,最佳做法是为每个环境创建和部署local.js文件,并在您的仓库中保持未跟踪。
但是,如果您的项目位于私人仓库并且您可以轻松保存敏感信息,则可以使用process.env.NODE_ENV
来编写条件。 例如,以下是如何为adapters.js
文件中的不同环境定义不同的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
环境变量,就可以了。