在Node.js中读取环境变量
在Node.js中读取环境变量
技术背景
在Node.js应用开发中,环境变量是一种重要的配置方式,它可以用来存储敏感信息(如API密钥、数据库密码)、设置应用的运行模式(开发、生产等),还能针对不同的运行环境动态配置应用的参数。Node.js为我们提供了方便的机制来读取环境变量。
实现步骤
直接使用process.env
读取
在Node.js里,process.env
对象包含了所有的环境变量。可以通过键来访问特定的环境变量,形式如 process.env.ENV_VARIABLE
,这里的ENV_VARIABLE
就是你要访问的变量名。
示例代码
1 |
|
使用dotenv
包管理环境变量
为了按项目管理环境变量,可以使用dotenv
包:
- 在项目目录下创建一个
.env
文件,把所有的变量写成VAR_NAME=value
的形式。比如:
1 |
|
- 在应用的入口文件顶部添加
require('dotenv').config();
,之后就可以用process.env.VAR_NAME
来访问环境变量了。
示例代码
1 |
|
核心代码
获取所有环境变量
1 |
|
使用动态生成的键获取环境变量
1 |
|
最佳实践
避免布尔逻辑陷阱
要注意,即便在.env
文件里定义变量为SHOULD_SEND=false
或者 SHOULD_SEND=0
,这些值都会被转换为字符串(分别是 "false"
和 "0"
),不会被当作布尔值解释。所以,建议进行明确的检查,例如:
1 |
|
确保环境变量在导入模块前已设置
可以使用预初始化脚本或者动态导入:
1 |
|
常见问题
布尔值被当作字符串处理
正如前文所述,直接使用布尔类型的环境变量容易引发问题,要进行明确的检查或者转换。
环境变量未正确加载
可能是因为没有正确配置dotenv
,要保证.env
文件存在且require('dotenv').config();
被添加到了入口文件顶部。
在Node.js中读取环境变量
https://119291.xyz/posts/read-environment-variables-in-nodejs/