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

Express构建的Node.js后端环境变量API_KEY显示undefined问题

解决Node.js Express后端环境变量显示undefined的问题

问题分析

核心问题是dotenv未正确加载根目录下的.env文件,导致process.env.REACT_APP_OPENAI_API_KEY返回undefined。从项目结构来看,server.js位于src目录,而.env在项目根目录,dotenv默认从当前执行脚本的目录查找.env,因此无法定位到根目录的配置文件。

解决方案

1. 手动指定.env文件路径

修改server.js中的dotenv配置,通过ES模块的API获取当前文件路径,拼接出根目录下.env的绝对路径:

import express from "express";
import cors from "cors";
import axios from "axios";
import dotenv from "dotenv";
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';

// 获取当前文件的绝对路径与目录
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

// 指定根目录下的.env文件路径
dotenv.config({ path: join(__dirname, '../.env') });

const PORT = 8000;
const app = express();

app.use(cors());

app.get("/hello", (req, res) => {
  res.json("Hello World");
});

app.get("/test-cases", async (req, res) => {
  const API_KEY = process.env.REACT_APP_OPENAI_API_KEY;
  console.log(API_KEY);
  // 后续业务逻辑...
});

2. 可选:规范环境变量命名

REACT_APP_是Create React App识别前端环境变量的约定,后端无需遵循。可以修改.env中的变量名简化代码:

.env文件修改:

# Not a real API KEY!!!!!
OPENAI_API_KEY=sk-NgPdmiXotwLWvasdsddsfkFJG4bnvnod3BwRPTsPaeUv

server.js中读取:

const API_KEY = process.env.OPENAI_API_KEY;

3. 排查验证点

若修改后仍未解决,检查以下内容:

  • 确认.env文件名无拼写错误(如误写为.env.local)
  • 确保变量赋值无多余空格(如KEY= value会导致值包含空格)
  • 重新执行npm install dotenv验证依赖安装完整性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:42:58