Node.js v25.0.0 文档
- Node.js v25.0.0
- 目录
-
索引
- 断言测试
- 异步上下文跟踪
- 异步钩子
- 缓冲区
- C++ 插件
- 使用 Node-API 的 C/C++ 插件
- C++ 嵌入器 API
- 子进程
- 集群
- 命令行选项
- 控制台
- 加密
- 调试器
- 已弃用的 API
- 诊断通道
- DNS
- 域
- 环境变量
- 错误
- 事件
- 文件系统
- 全局对象
- HTTP
- HTTP/2
- HTTPS
- 检查器
- 国际化
- 模块:CommonJS 模块
- 模块:ECMAScript 模块
- 模块:
node:module
API - 模块:包
- 模块:TypeScript
- 网络
- 操作系统
- 路径
- 性能钩子
- 权限
- 进程
- Punycode
- 查询字符串
- 逐行读取
- REPL
- 报告
- 单一可执行文件应用
- SQLite
- 流
- 字符串解码器
- 测试运行器
- 定时器
- TLS/SSL
- 跟踪事件
- TTY
- UDP/数据报
- URL
- 实用工具
- V8
- 虚拟机
- WASI
- Web Crypto API
- Web Streams API
- 工作线程
- Zlib
- 其他版本
- 选项
环境变量#
环境变量是与 Node.js 进程运行环境相关联的变量。
CLI 环境变量#
有一组环境变量可以用来定制 Node.js 的行为,更多详情请参阅 CLI 环境变量文档。
process.env
#
与环境变量交互的基本 API是 process.env
,它是一个包含了预填充用户环境变量的对象,可以被修改和扩展。
更多详情请参阅 process.env
文档。
DotEnv#
一套用于处理在 .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
编程 API#
以下两个函数允许你直接与 .env
文件交互:
-
process.loadEnvFile
加载一个.env
文件并用其变量填充process.env
-
util.parseEnv
解析一个.env
文件的原始内容并以对象形式返回其值