在Express中存储环境/配置变量的首选方法是什么?

drl*_*laj 3 node.js express

在Express应用程序中处理不同环境的配置的最佳方法是什么?

我应该在/.config中放置{development,production,testing} .json并根据process.env.NODE_ENV加载适当的一个吗?就像是...

var env = process.env.NODE_ENV || 'development';
var config = require('./config/' + env + ".json");
Run Code Online (Sandbox Code Playgroud)

或者,还有更好的方法?

tyd*_*otg 7

我通常做过这样的事情:

文件结构:

config/
  config.js
  env/
    development.js
    test.js
    production.js
Run Code Online (Sandbox Code Playgroud)

然后在config.js文件存储内部通用配置东西,以及加载相应的环境配置:

// main config.js file

process.env.NODE_ENV = process.env.NODE_ENV || 'development';

// load the config file for the current environment
var config = require('./env/' + process.env.NODE_ENV);

// extend config with universal config data
config.someEnvAgnosticSetting = true;

// export config
module.exports = config;
Run Code Online (Sandbox Code Playgroud)

这使您可以轻松地分离出特定于环境的配置,同时允许任何需要配置的模块只需要根配置文件.

例如,在您的server.js文件中:

// require config, not worrying about what environment is being loaded
var config = require('./config/config');

// use config data
app.listen(config.port);
Run Code Online (Sandbox Code Playgroud)

编辑:顺便说一句,我没有采用这种方法 - 对于节点应用程序(或者一般的网络应用程序来说,它是一个非常常见的方法,但它恰好在节点中你需要自己设置).查看mean.js示例应用程序,了解使用此模式的更深入的示例.