如何在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环境变量,就可以了。