【问题标题】:Why should we use environmental variables in node.js?为什么要在 node.js 中使用环境变量?
【发布时间】:2019-06-06 06:09:45
【问题描述】:

虽然我可以理解使用.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
})

【问题讨论】:

  • 请说明您正在考虑哪些替代方案。您是在询问 .env 文件与将值直接放在代码中的优缺点吗?还是仍在使用环境变量,但不在.env 文件中?
  • 谢谢,Kyle 的建议不错。我还将查看链接 jonr
  • 所以您可以在不存储凭据的情况下使用版本管理?
  • 你想编译一个特定版本的应用程序还是为它部署的每个端口编写一个特定的环境?

标签: node.js environment-variables dotenv


【解决方案1】:

最好不要在代码中直接包含数据库配置信息。将这些项目保存在环境变量中具有以下好处:

  • 它允许您为程序的不同实例使用不同的数据库。例如,拥有同一应用程序的开发和生产实例
  • 它允许您保护数据库凭据。将这些凭据放在源代码中可能是封闭源代码高度保护代码的一种选择,但如果它们位于其他地方,保护它们会容易得多
  • 它允许您在不更改代码的情况下更改数据库配置。也许您已决定将数据库托管在其他地方。能够在不重建应用程序的情况下做到这一点真是太好了

我敢肯定还有其他我现在没有想到的原因,但仅这些就足以说服大多数人。

【讨论】:

    猜你喜欢
    • 2016-12-16
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 2018-03-09
    相关资源
    最近更新 更多