开发中的环境变量是什么?
环境变量是一个广泛使用的术语,但它的实际含义是什么,为什么它甚至存在?
技术定义:环境变量是一个动态设置的值,在整个程序中使用并确定每个设备上程序的属性。它们是程序执行环境的一部分。
例如,程序可以从环境变量中获取特定键的值,例如,如果代理变量存在,则 Proxy 在发出网络请求时通过代理隧道。
环境变量的好处是——
- 安全
- 易于维护和自适应代码
让我们在另一个例子的帮助下理解它。想象一下,您获得了一项付费服务,例如付费天气 API 服务,并获得了一个用于身份验证的秘密令牌,该令牌包含在您的天气项目中。
例如,JavaScript 中的环境变量可以是这样的:
const weather_api_key = "YourVeryUsefulAndSecretToken";
现在,您像我们大多数人一样为这个项目创建了一个公共存储库。但是等等,这意味着任何人都可以在您付费的同时在他们的项目中使用您的密钥。这是个大问题!
那么,您是否应该停止将项目保存在公共存储库中?
不 !您应该始终尝试将您的项目添加到 Github 或类似的 VCS 服务以增强您的投资组合。我们只需要一种方法来将这个密钥与纯代码隔离开来,但可以在代码中使用。答案是环境变量。
环境变量是在本地设置或托管服务上设置的一组键值对,而不是直接包含在纯代码中,它们可在您的代码中使用,
例如,weather_key YourVeryUsefulAndSecretToken database_key SecretDatabaseKey support_email abc@xyz.com
我们可以在代码中包含这些键,以便在我们的代码中使用它们各自的值。例如,在 JavaScript 中:
const weather_api_key = process.env.weather_key;
weather_key 指的是实际令牌值,即“YourVeryUsefulAndSecretToken”
在 .gitignore 文件中编辑和添加 .env 或其他带有环境变量的文件,这样它就不会被 git 跟踪。您现在可以将此代码推送到您的存储库,而无需担心任何安全问题!
环境变量解决了安全问题,但它还有另一个好处。环境变量确保自适应代码。
例如,如果代码使用上面提到的名为support_email的环境变量,它必须在网站上显示支持电子邮件。稍后您由于某些原因希望更改它。在这种情况下,您只需要在环境变量配置中进行更改。如果它是纯代码,那么到处更改它将是一项繁琐的任务。
设置环境变量因您的操作系统和托管服务而异,因此请从特定于服务的文档或指南中获取帮助。环境变量通常在整个操作系统中全局作用域,但也有一些方法可以为您的项目设置特定的环境变量。查看这篇关于在 Node JS 中设置环境变量的文章。