如何在node.js中为不同的环境定义不同的变量?

时间:2018-10-27 19:46:07

标签: javascript node.js environment-variables

我开始使用'1'来定义我的环境变量。我可以在一个.env文件中轻松指定用于开发和生产环境的通用变量。但是如何为开发和生产环境指定不同的变量。

例如,我要使用DB_NAME = dev_db进行开发,并使用DB_NAME = prod_db进行生产。我该如何使用import re srch = re.compile(r'^([A-Za-z]+)(\d*)$') def calculate_atomic_mass(molecule): """ Calculate the atomic mass of a given molecule """ result = 0.0 mol = molecule.split('-') if atm in mol: c = srch.find(atm) result += result[c[1]] * int(c[2] or '1') return result 做到这一点?

我正在使用node.js。 预先谢谢你!

1 个答案:

答案 0 :(得分:2)

.env文件在不同的环境下应该有所不同,因此不应提交给您的源代码控制存储库(对于Git,这意味着.gitignore)。

例如,您将为此生产config.env

DB_NAME=prod_db

在开发中,就像这样:

DB_NAME=dev_db

在两种环境下,文件都将被命名为config.env,并且将位于同一位置,以便代码读取正确的文件。

在我的项目中,提交的文件称为config.env.sample,其中包含所有必要的值,以便开发人员知道他们需要在其环境中添加到config.env中的内容:

# config.env.sample
# Sample configuration file for Project XYZ

# Name of the database
DB_NAME=dev_db

这里是more information from the FAQ

  

我应该提交我的.env文件吗?

     

不。我们强烈建议不要将.env文件提交到版本控制。它应仅包含特定于环境的值,例如数据库密码或API密钥。生产数据库的密码应与开发数据库的密码不同。

     

我应该有多个.env文件吗?

     

不。我们强烈建议不要使用“ main” .env文件和“ environment” .env文件(例如.env.test)。您的配置应因部署而异,并且不应在环境之间共享值。