【发布时间】:2017-05-08 17:52:25
【问题描述】:
我是 expressjs 应用程序开发的新手,现在需要根据环境配置应用程序。遇到'node-env-file','cross-env'。但几乎什么都不懂。请建议如何根据环境设置环境变量或一些好的文档建议? 根据环境,我想加载我的配置文件。截至目前,我有两个配置文件,一个用于开发,一个用于生产。
【问题讨论】:
标签: node.js express environment-variables
我是 expressjs 应用程序开发的新手,现在需要根据环境配置应用程序。遇到'node-env-file','cross-env'。但几乎什么都不懂。请建议如何根据环境设置环境变量或一些好的文档建议? 根据环境,我想加载我的配置文件。截至目前,我有两个配置文件,一个用于开发,一个用于生产。
【问题讨论】:
标签: node.js express environment-variables
思路是将NODE_ENV设置为环境变量,判断给定环境是production还是staging还是development。代码库将基于此设置变量运行。
变量需要设置在.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.json、config.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
【讨论】:
我使用带有 env vars 的 .env 文件:
VAR=VALUE
在运行 express 之前使用source 命令阅读
$ source .env
$ node app.js
然后,要访问 express 内部,您可以使用:
var temp = process.env.VAR; //contains VALUE
您可以使用 dotenv 模块,自动加载 .env 文件
【讨论】: