Node.js v26.0.0 文档
- Node.js v26.0.0
- 目录
- 索引
- 关于本文档
- 用法与示例
- 断言测试
- 异步上下文跟踪
- 异步钩子
- 缓冲区
- C++ 插件
- 使用 Node-API 的 C/C++ 插件
- C++ 嵌入器 API
- 子进程
- 集群
- 命令行选项
- 控制台
- 加密
- 调试器
- 已弃用的 API
- 诊断通道
- DNS
- 域
- 环境变量
- 错误
- 事件
- 文件系统
- 全局对象
- HTTP
- HTTP/2
- HTTPS
- 检查器
- 国际化
- 模块:CommonJS 模块
- 模块:ECMAScript 模块
- 模块:
node:moduleAPI - 模块:包
- 模块:TypeScript
- 网络
- 可迭代流 API
- 操作系统
- 路径
- 性能钩子
- 权限
- 进程
- Punycode
- 查询字符串
- 逐行读取
- REPL
- 报告
- 单一可执行文件应用
- SQLite
- 流
- 字符串解码器
- 测试运行器
- 定时器
- TLS/SSL
- 跟踪事件
- TTY
- UDP/数据报
- URL
- 实用工具
- V8
- 虚拟机
- WASI
- Web Crypto API
- Web Streams API
- 工作线程
- Zlib
- Zlib 可迭代压缩
- 其他版本
- 选项
环境变量#
环境变量是与 Node.js 进程运行环境相关联的变量。
CLI 环境变量#
有一组环境变量可以定义来定制 Node.js 的行为,更多详细信息请参阅 CLI 环境变量文档。
process.env#
与环境变量交互的基本 API 是 process.env,它由一个包含预填充用户环境变量的对象组成,可以对其进行修改和扩展。
更多详细信息请参阅 process.env 文档。
DotEnv#
稳定性:2 - 稳定
用于处理定义在 .env 文件中的额外环境变量的一组实用工具。
.env 文件#
.env 文件(也称为 dotenv 文件)是定义环境变量的文件,Node.js 应用程序可以与这些变量进行交互(由 dotenv 包推广)。
以下是一个基本 .env 文件内容示例
MY_VAR_A = "my variable A"
MY_VAR_B = "my variable B"
这种类型的文件在各种不同的编程语言和平台中使用,但没有正式的规范,因此 Node.js 定义了下述自己的规范。
.env 文件是一个包含键值对的文件,每一对由变量名、等号 (=) 以及变量值组成。
这类文件的名称通常是 .env,或者以 .env 开头(例如 .env.dev,其中 dev 表示特定的目标环境)。这是推荐的命名方案,但并非强制,dotenv 文件可以使用任何任意文件名。
变量名#
有效的变量名必须仅包含字母(大写或小写)、数字和下划线 (_),且不能以数字开头。
更具体地说,有效的变量名必须符合以下正则表达式
^[a-zA-Z_]+[a-zA-Z0-9_]*$
推荐的约定是使用大写字母,并在必要时使用下划线和数字,但任何符合上述定义的变量名均可正常工作。
例如,以下是一些有效的变量名:MY_VAR、MY_VAR_1、my_var、my_var_1、myVar、My_Var123;而以下则是无效的:1_VAR、'my-var'、"my var"、VAR_#1。
变量值#
变量值由任意文本组成,可以选择使用单引号 (') 或双引号 (") 包裹。
带引号的变量可以跨越多行,而未加引号的变量仅限于单行。
注意,当被 Node.js 解析时,所有值都会被解释为文本,这意味着任何值在 Node.js 中都将作为 JavaScript 字符串。例如以下值:0、true 和 { "hello": "world" } 将分别生成字面量字符串 '0'、'true' 和 '{ "hello": "world" }',而不是数字零、布尔值 true 或包含 hello 属性的对象。
有效变量示例
MY_SIMPLE_VAR = a simple single line variable
MY_EQUALS_VAR = "this variable contains an = sign!"
MY_HASH_VAR = 'this variable contains a # symbol!'
MY_MULTILINE_VAR = '
this is a multiline variable containing
two separate lines\nSorry, I meant three lines'
空格#
除非变量键和值被引号括起来,否则它们前后的空白字符都会被忽略。
例如:
MY_VAR_A = my variable a
MY_VAR_B = ' my variable b '
将被视为与以下内容相同
MY_VAR_A = my variable a
MY_VAR_B = ' my variable b '
注释#
井号 (#) 字符表示注释的开始,这意味着该行剩余部分将被完全忽略。
然而,引号内的井号会被视为普通字符处理。
例如:
# This is a comment
MY_VAR = my variable # This is also a comment
MY_VAR_A = "# this is NOT a comment"
export 前缀#
export 关键字可以可选地添加在变量声明之前,该关键字在处理文件时将被完全忽略。
这样做很有用,以便该文件可以在 Shell 终端中直接加载(source),而无需修改。
示例
export MY_VAR = my variable
CLI 选项#
.env 文件可以通过以下 CLI 选项之一用于填充 process.env 对象
编程 API#
以下两个函数允许您直接与 .env 文件交互
-
process.loadEnvFile加载.env文件并使用其中的变量填充process.env -
util.parseEnv解析.env文件的原始内容并将其值以对象形式返回