如何根据环境配置快递js应用程序?喜欢开发,分期和生产?

时间:2016-12-23 02:26:49

标签: node.js express environment-variables

我是expressjs app开发的新手,现在需要根据环境配置应用程序。遇到'node-env-file','cross-env'。但几乎什么都不懂。请建议如何根据环境或一些好的文档建议设置env变量? 基于环境,我想加载我的configuraiton文件。截至目前,我有两个配置文件,一个用于开发,一个用于生产。

2 个答案:

答案 0 :(得分:1)

我们的想法是将NODE_ENV设置为环境变量,以确定给定的环境是production还是staging还是development。代码库将基于此set变量运行。

变量需要在.bash_profile

中设置
$ echo export NODE_ENV=production >> ~/.bash_profile
$ source ~/.bash_profile

有关详情,请查看Running Express.js in Production Mode

我遵循Ghost.org(Node.js制作)应用的模型。

完成后,您可以在相应的json文件中获取环境详细信息,例如config.production.jsonconfig.development.json

接下来,您需要根据环境加载其中一个文件。

var  env = process.env.NODE_ENV || 'development';
var Nconf = require('nconf'),
nconf = new Nconf.Provider(),
nconf.file('ghost3', __dirname + '/env/config.' + env + '.json');

有关Ghost如何做到这一点的更多信息,请查看config/index.js

答案 1 :(得分:0)

我使用带有env vars的 .env 文件:

VAR=VALUE

在运行express

之前用source命令读取
$ source .env
$ node app.js

然后,要访问inside express,您可以使用:

var temp = process.env.VAR; //contains VALUE

您可以使用 dotenv 模块自动加载.env文件