在生产中的本地计算机上设置环境变量
在本地计算机上的生产环境中运行Express应用时,应如何处理环境变量的设置?
我正在使用config
软件包。在开发中,我使用此配置文件-development.json
:
{
"mongoURI": "myMongoConnectionStringWithUsernameAndPassword",
"apiKey": "mySuperSecretSuperSecret"
}
据我所知,在生产中,不应将此类敏感数据存储在文件中。据我了解,原因是,如果将这样的文件检入版本控制,则每个人都可以访问其中包含的敏感信息(如果还有其他原因,请详细说明)。因此在生产中,我的配置文件如下所示-production.json
:
{
"mongoURI": "",
"apiKey": ""
}
此外,我使用文件custom-environment-variables.json
将环境变量映射到配置值。然后可以使用例如Heroku信息中心,可让Express应用程序使用它们。
{
"mongoURI": "db_uri"
"apiKey": "api_key"
}
但是,在我的本地计算机上,我不知道一种方便的方法来轻松设置和更新这些环境变量。
我曾考虑过通过在package.json
中在生产环境中运行我的应用程序的启动脚本来设置它们,但随后我会将它们再次保存在文件中,这与如上所述将它们存储在production.json
中是相同的问题。
这在实践中如何完成?在本地计算机上,每次要在生产环境中运行应用程序时,是否都必须手动在终端上设置所有环境变量?有没有更好的方法?
回答如下:您可以使用dotenv执行此操作!
在生产中的本地计算机上设置环境变量
在本地计算机上的生产环境中运行Express应用时,应如何处理环境变量的设置?
我正在使用config
软件包。在开发中,我使用此配置文件-development.json
:
{
"mongoURI": "myMongoConnectionStringWithUsernameAndPassword",
"apiKey": "mySuperSecretSuperSecret"
}
据我所知,在生产中,不应将此类敏感数据存储在文件中。据我了解,原因是,如果将这样的文件检入版本控制,则每个人都可以访问其中包含的敏感信息(如果还有其他原因,请详细说明)。因此在生产中,我的配置文件如下所示-production.json
:
{
"mongoURI": "",
"apiKey": ""
}
此外,我使用文件custom-environment-variables.json
将环境变量映射到配置值。然后可以使用例如Heroku信息中心,可让Express应用程序使用它们。
{
"mongoURI": "db_uri"
"apiKey": "api_key"
}
但是,在我的本地计算机上,我不知道一种方便的方法来轻松设置和更新这些环境变量。
我曾考虑过通过在package.json
中在生产环境中运行我的应用程序的启动脚本来设置它们,但随后我会将它们再次保存在文件中,这与如上所述将它们存储在production.json
中是相同的问题。
这在实践中如何完成?在本地计算机上,每次要在生产环境中运行应用程序时,是否都必须手动在终端上设置所有环境变量?有没有更好的方法?
回答如下:您可以使用dotenv执行此操作!