MERN 项目 ENV 变量错误:未定义

MERN Project ENV variables Error : Undefined

提问人:ACID 提问时间:10/18/2023 更新时间:10/18/2023 访问量:23

问:

在我的 MERN 项目中,我无法正确使用 ENV 变量,首先在导入我的 MOGODB_URI 时给了我这个错误:

The `uri` parameter to `openUri()` must be a string, 
got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.

而且我也不能使用我声明的其他变量,例如 PORT、JWT_SECRET 等。当我尝试安慰这些时,它只返回 undefined。

console.log(process.env.MONGODB_URI, process.env.PORT, process.env.NODE_ENV); //undefined undefined undefined

我无法找到此错误的根源,我一直在遵循最佳实践并确保导入这些模块,但错误仍然存在。

const dotenv = require("dotenv");
require('dotenv').config();

请帮助提供解决方案,这将是一个很大的帮助。我附上照片以供参考。我的文件夹结构和错误消息

我尝试使用dotenv的降级版本,但这不起作用。此外,我还尝试使用不同的方法导入 dotenv,但它们都不起作用。const dotenv = require("dotenv"); require('dotenv').config();

节点.js 环境变量 mern 开发环境 dotenv

评论

0赞 Hoopra 10/18/2023
如果你运行你的代码,它有用吗?您的 .env 文件的内容是什么?相对于您正在执行的代码文件,您的 .env 文件位于何处?node -r dotenv/config your_script.js

答:

0赞 Hoopra 10/18/2023 #1

从屏幕截图中很难看出,但看起来您唯一的 .env 文件就在里面。dotenv 通过向上查找文件夹树来查找第一个 .env 文件,但不会进入同一级别的其他文件夹。尝试添加一个包含所需变量的 .env 文件。frontend/backend/