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

Node.js中使用dotenv读取config目录下.env文件API密钥失败求助

Node.js dotenv无法从config目录加载API密钥到routes/weather.js的解决办法
  • 指定正确的.env文件路径
    由于你的.env放在config目录,而weather.js在routes目录,加载dotenv时必须明确指定路径。先引入path模块,再用相对路径拼接:

    const path = require('path');
    require('dotenv').config({ path: path.resolve(__dirname, '../config/.env') });
    

    也可以用项目根目录作为基准(更可靠):

    require('dotenv').config({ path: path.join(process.cwd(), 'config/.env') });
    
  • 检查.env文件格式
    确保密钥定义没有多余空格或引号,正确格式如下:

    OPENWEATHER_API_KEY=你的实际密钥内容
    
  • 验证环境变量是否加载成功
    在weather.js加载dotenv后立即打印变量,确认是否存在:

    console.log(process.env.OPENWEATHER_API_KEY);
    

    如果输出undefined,说明路径配置错误,需要重新调整路径拼接逻辑。

  • 优化加载方式(最佳实践)
    建议在项目入口文件(如app.js、server.js)中统一加载dotenv,这样所有子模块无需重复加载即可直接使用环境变量:

    // 入口文件中
    const path = require('path');
    require('dotenv').config({ path: path.resolve(__dirname, 'config/.env') });
    

    之后在weather.js里直接调用process.env.OPENWEATHER_API_KEY即可。

  • 排查拼写错误
    确认.env中的变量名和代码中调用的完全一致,包括大小写(process.env变量名区分大小写)。

内容的提问来源于stack exchange,提问作者Rafael Silva de Souza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:30:59