Avi*_*ash 17 node.js npm dotenv
为什么我不应该在生产模式下使用 dotenv ?
我在一些网站上看到了以下代码。但我不明白他们为什么要做这个条件检查。
if (process.env.NODE_ENV !== 'production') {
require('dotenv').config();
}
console.log('Bla is :', process.env.Bla);(*)
Run Code Online (Sandbox Code Playgroud)
假设行(*)的输出不是生产模式下的 line(*) 的输出是 -> Bla 是 : Bla
如果 NODE_ENV 是生产环境,行 (*) 的输出是什么?(据我所知,我认为会的undefined
)
Vir*_*ngh 16
因为在生产中,您可能希望将环境变量直接设置到虚拟机中,因为您可能没有 ssh 访问权限,并且无法将 .env 文件推送到版本控制。就我而言,我使用的是 heroku 免费套餐,但无法通过 ssh 创建 .env 文件。因此,我在 Config Vars 设置中手动设置环境变量。
补充其他答案,您还会产生安全问题。您将对数据库连接、令牌和密码等信息进行版本控制(提交到 git)。在这种情况下,访问代码的每个人都能够连接到生产资源。
为了解决这个问题,在生产中,您可以直接在运行代码的实例上创建环境变量。
归档时间: |
|
查看次数: |
20378 次 |
最近记录: |