node.js - 为什么要在 node.js 中使用环境变量?
问题描述
虽然我可以理解使用.env
文件的好处,但使用它们与将值直接放在代码中相比有哪些优点和缺点(如果有的话)?我看到很多指南解释了如何使用它们,但从来没有我们为什么要使用它们。它们被认为是最佳实践吗?每个生产项目都应该使用它们吗?
# File: .env
DB_HOST=localhost
DB_USER=rootz
DB_PASS=s1mpl3
# File: random_db.js
const db = require('db')
db.connect({
host: process.env.DB_HOST,
username: process.env.DB_USER,
password: process.env.DB_PASS
})
解决方案
最好不要在代码中直接包含数据库配置信息。将这些项目保留在环境变量中具有以下好处:
- 它允许您为程序的不同实例使用不同的数据库。例如,拥有相同应用程序的开发和生产实例
- 它允许您保护数据库凭据。将这些凭据放在源代码中可能是封闭源代码高度保护代码的一种选择,但如果它们位于其他地方,则保护它们要容易得多
- 它允许您在不更改代码的情况下更改数据库配置。也许您已决定将数据库托管在其他地方。能够在不重建应用程序的情况下做到这一点真是太好了
我敢肯定还有其他我现在没有想到的原因,但仅凭这些就足以说服大多数人。
推荐阅读
- javascript - 图表的宽度正在影响我在 Highcharts 中的第二个 x 轴标签
- python - 将 curl 转换为 python 请求
- java - 如何在不使用 Java 中的 Dropbox SDK 的情况下在 Dropbox 上上传文件?
- c# - 在每个页面加载时调用 JS 函数
- python - 将 str(numpy array) 表示转换为 numpy 数组 - Python
- if-statement - 查询 Google 表格中的串联数组
- arrays - 尝试以角度迭代对象数组
- visual-studio-code - 如何打印 .ml 文件中每一行的输出
- sharepoint - SharePoint CSOM 查询关键字筛选日期时间类型列
- jekyll - 杰基尔。Liquid:为异常导航项指定活动/当前状态