Vite/React & Node.js应用无法读取.env环境变量求助
解决Node.js后端读取.env环境变量返回undefined的问题
核心问题
你混淆了前端(Vite/React)和后端(Node.js)的环境变量机制:
VITE_前缀是Vite给前端代码提供的环境变量规则,后端Node.js不识别;REACT_APP_是Create React App的规则,同样不适用于后端。import.meta.env是Vite前端专属的环境变量读取方式,后端Node.js环境不存在这个对象。- cross-env仅用于跨平台设置命令行环境变量,不能自动加载
.env文件。
具体解决方案
- 安装后端环境变量加载工具dotenv
npm install dotenv --save
- 修正后端
.env文件配置
删除多余前缀,且等号前后不要留空格(避免读取异常):
API_KEY='你的GPT密钥'
- 在server.js中加载并读取变量
- 如果是CommonJS模块(用
require):
// 放在server.js最顶部 require('dotenv').config(); // 读取变量 console.log(process.env.API_KEY);
- 如果是ES模块(package.json中设置了
"type": "module"):
// 放在server.js最顶部 import dotenv from 'dotenv'; dotenv.config(); // 读取变量 console.log(process.env.API_KEY);
额外注意事项
- 确保
.env文件和server.js在同一目录下,dotenv默认会加载当前工作目录下的.env文件。 - 将
.env添加到.gitignore中,避免密钥泄露。
内容的提问来源于stack exchange,提问作者Stef Verniers
相关产品推荐
相关产品推荐

