为什么要在node.js中使用环境变量?

时间:2019-06-05 19:40:50

标签: node.js environment-variables dotenv

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

1 个答案:

答案 0 :(得分:1)

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

  • 它允许您对程序的不同实例使用不同的数据库。例如,要拥有相同应用程序的开发和生产实例
  • 它允许您保护数据库凭据。将这些凭据放入源代码中可能是封闭源代码高度戒备的代码的一种选择,但是如果它们在其他地方,则保护起来更加容易
  • 它使您无需更改代码即可更改数据库配置。也许您已经决定将数据库托管在其他地方。无需重新构建应用程序就能做到这一点很高兴

我敢肯定还有其他一些我现在不在考虑的原因,但仅凭这些就足以说服大多数人。