首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >module.exports与环境变量

module.exports与环境变量
EN

Stack Overflow用户
提问于 2021-02-11 12:54:19
回答 1查看 365关注 0票数 0

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

使用module.exports,您可以这样写:

代码语言:javascript
复制
const KEY = require("./credentials.js");

而对于.env文件,您可以这样写:

代码语言:javascript
复制
const KEY = process.env.KEY;

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

EN

回答 1

Stack Overflow用户

发布于 2021-02-11 14:06:17

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

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

在您的示例中为如果您希望在3个服务器(开发人员、质量保证人员、生产人员)上部署应用程序,但是使用不同的凭据,那么每次部署时都更改凭据是没有意义的。即使您为每个服务器定义凭据,它也必须是静态的,如果您想要更改它,您必须在文件中进行更改,并再次部署应用程序以反映这些更改。如果是环境变量,您只需在目标系统上更改它并重新启动服务器,因此无需再次部署应用程序。

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

对于环境变量中的安全性,您可以读取this

存储凭据时:

compromised

  • You
  • 存在将凭据存储在配置文件中时暴露给版本控制系统的风险
  • 凭据存储在哪里并不重要,如果系统是运行时配置文件,则可以使用运行时配置文件。Find it here
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66148954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档