dotenv配置文件导出数据返回undefined的问题求助
解决dotenv加载后process.env变量返回undefined的问题
先整理下你的配置和代码:
.env 文件内容
PORT=3000 MONGO_URI=mongodb+srv://userfg:<password>@cluster0.45m0c4f.mongodb.net/?retryWrites=true&w=majority MONGO_DBNAME=inventario
配置JS文件代码
require('dotenv').config(); module.exports.Config = { port: process.env.PORT, mongoURI: process.env.MONGO_URI, mongodbname: process.env.MONGO_DBNAME }; console.log(process.env.PORT);
下面是几个必查的解决点:
确认.env文件的位置和命名
必须把.env放在项目根目录(和你的配置JS文件同级,或者项目最外层目录),文件名必须是.env(前面的点不能丢)。如果文件不在根目录,要手动指定路径:require('dotenv').config({ path: './src/config/.env' }); // 替换成你的实际路径检查.env文件的语法规范
键值对不能有空格(比如PORT = 3000是错的,必须写成PORT=3000);不要给变量值加引号(比如PORT="3000"会把引号也包含进变量值里)。另外注意把<password>替换成你的MongoDB真实密码。确保dotenv加载在最前面
把require('dotenv').config()放在JS文件的第一行,不要在它之前导入其他依赖或者访问process.env,否则会因为变量还没加载就读取导致undefined。排查文件加载是否成功
可以打印dotenv的加载结果,确认是否读取到文件:const dotenvResult = require('dotenv').config(); if (dotenvResult.error) { console.error('加载.env文件失败:', dotenvResult.error); } console.log('解析到的.env变量:', dotenvResult.parsed); // 如果是undefined说明没找到文件重新安装依赖确保兼容性
有时候依赖安装可能出问题,执行以下命令重新安装:npm uninstall dotenv npm install dotenv
内容的提问来源于stack exchange,提问作者fg daniel
相关产品推荐
相关产品推荐

