生产和开发环境变量(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 名称)