前言
随着现代 Web 应用的不断发展,前端开发人员需要依赖很多第三方的包来完成开发工作。其中,npm 包是很常见的一种依赖。然而,这些包在运行时也需要访问一些特定的环境变量,如 API 链接、访问密钥等。为了简化这个过程,我们可以使用 npm 包 environmental,它能够快速帮助我们管理这些环境变量。
简介
Environmental 是一个基于 Node.js 的开源 npm 包,它可以帮助我们管理环境变量,同时支持在不同的环境下设置不同的变量值。Environmental 还支持对环境变量的验证和类型转换,从而保证程序的稳定性和安全性。在实际开发中,我们可以使用 Environmental 来简化配置文件的编写和管理,从而提高工作效率。
安装
我们可以使用 npm 来安装 Environmental。在终端中输入如下命令:
npm install environmental --save
使用
创建配置文件
我们可以在项目根目录下创建一个名为 .env
的文件,用来存储我们的环境变量,如下所示:
DATABASE_URI=mongodb://localhost/myapp API_KEY=1234567890 NODE_ENV=development
加载环境变量
在代码中,我们需要加载环境变量。在 Node.js 中,我们可以使用 process.env
来访问环境变量。Environmental 可以在启动时自动加载环境变量,我们只需要把以下代码加入项目的入口文件中:
const env = require('environmental').config()
环境变量的访问
我们可以使用 config()
方法来读取配置文件中的环境变量,例如:
const env = require('environmental').config() console.log(env.DATABASE_URI) console.log(env.API_KEY) console.log(env.NODE_ENV)
输出结果:
mongodb://localhost/myapp 1234567890 development
设置默认值
如果环境变量不存在,可以设置一个默认值作为其值。例如:
const env = require('environmental').config() console.log(env.SOME_VARIABLE || 'Default Value')
输出结果:
Default Value
环境变量的类型转换
我们可以使用 env.<variable>.as<type>()
方法来将环境变量转换为指定的类型。目前,Environmental 支持将字符串转换为:
- 数字(
asNumber()
) - 数组(
asArray()
) - 正则表达式(
asRegExp()
) - 布尔值(
asBoolean()
) - JSON 对象(
asJsonObject()
)
例如:
const env = require('environmental') .config() .asNumber('PORT') .asBoolean('DEBUG') console.log(env.PORT, typeof env.PORT) console.log(env.DEBUG, typeof env.DEBUG)
输出结果:
8080 'number' true 'boolean'
验证环境变量
我们可以使用 validate()
方法来验证环境变量的值是否符合指定的规则。例如:
const env = require('environmental') .config() .validate('API_KEY', /^[a-zA-Z0-9]{10}$/) console.log(env.API_KEY)
如果 API_KEY
的值不符合正则表达式 ^[a-zA-Z0-9]{10}$
,则程序会报错并停止运行。
按照不同的环境设置不同的环境变量值
我们可以在 .env
中设置不同的环境变量值,从而在不同的环境中使用不同的配置。例如:
DATABASE_URI_PROD=mongodb://prod.host/myapp DATABASE_URI_DEV=mongodb://localhost/myapp API_KEY_PROD=1234567890 API_KEY_DEV=0987654321
在 Node.js 中,我们可以使用以下代码读取环境变量:
-- -------------------- ---- ------- ----- --- - --------------------------------- ----- ------------ - ----------------------- - ----------- -------------------- ------------ ------------------ -- ----- ------- - ------------------ - ----------- --------------- ------------ ------------- -- ------------------------- --------------------
在生产环境中,输出:
mongodb://prod.host/myapp 1234567890
在开发环境中,输出:
mongodb://localhost/myapp 0987654321
总结
Environmental 是一个很方便的 npm 包,它可以管理我们的环境变量,同时支持不同环境下的不同配置。同时,Environmental 也支持环境变量的类型转换和验证,可以提高程序的稳定性和安全性。在实际开发中,我们可以使用 Environmental 来简化配置文件的编写和管理,从而提高工作效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e26a563576b7b1ecf4f