0

将敏感凭据存储在 credentials.js 文件与 .env 文件有什么区别?

使用 module.exports 您可以编写:

const KEY = require("./credentials.js");

而使用 .env 文件,您可以编写:

const KEY = process.env.KEY;

在这两种情况下,您都实现了使某些变量“全局”并全局访问它的相同目标。为什么人们使用 .env 和 dotenv 而不是仅仅使用 Node 内置的 module.exports 系统?

4

1 回答 1

0

环境变量是在机器(系统)上定义的。环境变量可用于在同一系统上运行的多个应用程序。

导出的变量仅限于您正在运行的应用程序。

在您的情况下:如果您想在 3 个服务器(Dev、QA、Prod)上部署应用程序但使用不同的凭据,那么每次部署时都更改凭据是没有意义的。即使您为每台服务器定义了凭据,它也必须是静态的,并且如果您想更改它,您必须在文件中进行更改并再次部署应用程序以反映更改。如果是环境变量,您只需在目标系统上更改它并重新启动服务器,因此无需再次部署应用程序。

当多个环境变量发生变化时,管理变得一团糟。此外,环境变量在与其他服务集成时也很有用。

为了环境变量的安全性,您可以阅读此内容

存储凭据时:

  • 存储在配置文件中时存在将凭据暴露给版本控制系统的风险
  • 如果系统受到破坏,凭证存储在哪里都没有关系
  • 您可以使用运行时配置文件。在这里找到它
于 2021-02-11T06:06:16.817 回答