生产和开发环境变量(heroku)
Enviroment variables for production and development (heroku)
我在 Heroku (Node.js/Express + Postgres) 上有一个应用程序,我想使用不同的数据库进行生产和开发。
我知道我应该使用 process.env
中的变量而不是代码中的硬编码值。
我认为我不应该在代码中使用 if
语句来检查我的环境是生产环境还是本地开发环境。
对我来说,我应该在 .env
文件中创建 1 个变量,然后我的 server/environment 应该自己选择哪个选项是正确的。
(我的意思是我应该在 .env
文件中编写检查运算符,或者有 2 个不同的 .env
文件,然后 bash 脚本决定哪个 运行。)
所以问题是:
根据我当前工作的环境,哪种方式最适合切换我的 process.env.DATABASE_URL
?
P. S. 也许这是一个愚蠢的问题,但我只是想了解一下。
好的,我想我明白了。我的代码有一行带有环境变量,即 process.env.DATABASE_URL
.
在 .env
文件中(被 Git 忽略)我将 DATABASE_URL
设置为 my_local_database_connection
并在开发中使用它。当我将它推送到 Heroku 时,我在 Heroku 内部使用 config vars
,这意味着它从我在 Heroku 服务器上的配置变量“创建 .env 文件”(或类似这样的文件)并在生产中使用该值。
此外,正如评论我的问题的大人物所说,您可以用不同的方式设置 environment variables,您的项目中不必有 .env
文件,但它是一个方便的选择。
所以在我的代码中,我只有 1 行用于生产和开发。 (主要思想是我对每个环境都有相同的 var 名称)
我在 Heroku (Node.js/Express + Postgres) 上有一个应用程序,我想使用不同的数据库进行生产和开发。
我知道我应该使用 process.env
中的变量而不是代码中的硬编码值。
我认为我不应该在代码中使用 if
语句来检查我的环境是生产环境还是本地开发环境。
对我来说,我应该在 .env
文件中创建 1 个变量,然后我的 server/environment 应该自己选择哪个选项是正确的。
(我的意思是我应该在 .env
文件中编写检查运算符,或者有 2 个不同的 .env
文件,然后 bash 脚本决定哪个 运行。)
所以问题是:
根据我当前工作的环境,哪种方式最适合切换我的 process.env.DATABASE_URL
?
P. S. 也许这是一个愚蠢的问题,但我只是想了解一下。
好的,我想我明白了。我的代码有一行带有环境变量,即 process.env.DATABASE_URL
.
在 .env
文件中(被 Git 忽略)我将 DATABASE_URL
设置为 my_local_database_connection
并在开发中使用它。当我将它推送到 Heroku 时,我在 Heroku 内部使用 config vars
,这意味着它从我在 Heroku 服务器上的配置变量“创建 .env 文件”(或类似这样的文件)并在生产中使用该值。
此外,正如评论我的问题的大人物所说,您可以用不同的方式设置 environment variables,您的项目中不必有 .env
文件,但它是一个方便的选择。
所以在我的代码中,我只有 1 行用于生产和开发。 (主要思想是我对每个环境都有相同的 var 名称)