0

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

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

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

4

2 回答 2

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);

在这里查看一些真实的代码;

于 2013-08-23T10:42:58.367 回答
1

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

检查环境示例。

于 2013-08-20T14:52:39.907 回答