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