You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nodejs中Dotenv配置变量不生效,process.env无法读取对应密钥

Node.js dotenv配置变量不生效解决方案

以下是所有可能导致无法通过process.env读取dotenv配置的原因及对应修复方法:

  • dotenv引入时机错误
    dotenv必须在所有使用process.env变量的代码加载之前完成初始化。CommonJS规范下需在入口文件最顶部添加代码:
    require('dotenv').config()
    
    ES Module规范下因为import存在提升特性,建议直接使用预加载写法:
    import 'dotenv/config'
    
    禁止在引入了包含密钥调用的配置文件之后再初始化dotenv。
  • .env文件路径不匹配
    dotenv默认读取执行node命令的工作目录下的.env文件,若.env文件不在运行目录、或存放于子目录中,需手动指定文件路径:
    const path = require('path')
    require('dotenv').config({ path: path.resolve(__dirname, './你的.env文件相对路径') })
    
    也可以在启动服务时指定预加载:node -r dotenv/config 你的入口文件路径.js
  • .env文件格式错误
    需遵守dotenv默认格式规则:
    • 键值对直接写变量名=值,不需要添加export前缀
    • 键名和等号、等号和值之间不要留多余空格
    • 注释单独成行,以#开头,不要跟在键值对末尾
    • 包含空格的特殊值需要用单引号或双引号包裹
  • 服务未重启
    修改.env文件或dotenv配置后,必须重启Node.js服务,新的配置才会生效。
  • 加载错误排查
    可以通过捕获dotenv初始化的返回值排查具体错误:
    const result = require('dotenv').config()
    if (result.error) {
      console.log('dotenv加载错误:', result.error)
    }
    
    若使用Next.js、NestJS、Vite等框架,需遵循框架自身的环境变量加载规则,不要直接使用原生dotenv配置。

内容的提问来源于stack exchange,提问作者Mohi007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:36:04