【问题标题】:Building applications for different environments with nodejs使用 nodejs 为不同环境构建应用程序
【发布时间】:2013-08-22 16:24:52
【问题描述】:

从历史上看,在我参与过的大多数大型项目中,我们都有某种构建脚本,由开发人员运行以设置他们的环境,例如设置 iis、数据库迁移、模板配置文件等。

由于每个环境都不一样,我一般会为每个环境准备一套配置文件,比如dev.configqa.configrelease-candidate.config,然后在构建过程运行时会使用<environment>.config文件找出它的设置应该是什么。这样我的开发环境可以很好地构建,并且构建服务器也可以以自动化的方式很好地完成它的工作。

无论如何,在 .net 中,我们有可以模板化的配置文件,例如 web.config,在 nodejs 世界中有没有这样的概念?因为我想要一个文件,其中包含应用程序运行所需的所有配置值,而无需将它们放入应用程序代码中。

【问题讨论】:

    标签: node.js continuous-integration build-environment


    【解决方案1】:

    这就是我创建properties 模块的原因。

    查看environment 示例。

    【讨论】:

      【解决方案2】:

      实际上,您可以非常简单地做到这一点。只需将所有配置放在.js 文件中,例如

      {
        mongodb: {
          connection: 'http://mongodb.com/mydb:12323/user/password',
          options: {
            keepConnection: true
          }
        },
      
        app: {
          deploymentKey: '1234'
        },
      
        // etc
      }
      

      因此,您将拥有 2-3 个文件,具体取决于您拥有的环境数量。

         /config/development.js
         /config/production.js
         /config/test.js
         /config/staging.js
      

      环境类型通常由NODE_ENV 变量公开。然后你有一个非常简单的模块来加载配置:

      var util = require('util');
      
      var env = process.env.NODE_ENV || 'development';
      var config = util.format('/%s.config.js', env);
      
      module.exports = require(__dirname + config);
      

      检查一些真实代码here;

      【讨论】:

      • 这更像是我习惯做的方式,虽然另一个答案是一个完全有效的解决方案,我个人更喜欢这个解决方案。
      • 是的,我的主要观点 - 你不需要框架或 lib :) 这是非常简单的任务。
      • 这样使用 NODE_ENV 变量已经成为节点社区的事实标准。
      猜你喜欢
      • 2013-07-09
      • 2021-11-03
      • 2016-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      相关资源
      最近更新 更多