React Mongoose 错误 - URI 参数必须是字符串,但从 .env 文件返回“未定义”

问题描述 投票:0回答:1

我运行“npm run backend”后的错误消息。

.env 文件中的代码 -

PORT=5000
MONGO_URI='mongodb://127.0.0.1:27017/test'

**index.js 文件中的代码 - **

// packages
import path from "path";
import express from "express";
import dotenv from "dotenv";
import cookieParser from "cookie-parser";

// Utiles
import connectDB from "./config/db.js";


dotenv.config();
const port = process.env.PORT || 5000;

connectDB();

const app = express();

app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(cookieParser());

app.get("/api/config/paypal", (req, res) => {
  res.send({ clientId: process.env.PAYPAL_CLIENT_ID });
});


app.listen(port, () => console.log(`Server running on port: ${port}`));

**db.js 文件中的代码 - **

import mongoose from "mongoose";

const connectDB = async () => {
  try {
    console.log(process.env.MONGO_URI); // Add this line
    await mongoose.connect(process.env.MONGO_URI);
    console.log(`Successfully connected to MongoDB 👍`);
  } catch (error) {
    console.error(`ERROR: ${error.message}`);
    process.exit(1);
  }
};

export default connectDB;

.env 和 db.js 在 config 文件夹中,index.js 在 utils 文件夹中

目前正在学习react和javascript。我通过在线观看教程然后创建自己的项目来学习。

我尝试在 db 文件中输出“成功连接到 MongoDB 👍”,但收到 URI 错误。

我尝试通过控制台日志打印 process.env.MONGO_URI ,但它打印未定义。我真的需要帮助和解释为什么它不起作用

reactjs mongodb mongoose vite nodemon
1个回答
0
投票

为了让自己的生活更轻松,请遵循默认的文档并将您的

.env
文件移动到根目录中,然后按如下方式更新:

import path from "path";
import express from "express";
import "dotenv/config"; //< Change to this
import cookieParser from "cookie-parser";

// Utiles
import connectDB from "./config/db.js";

const port = process.env.PORT || 5000;

await connectDB(); //< top level await 
//...
© www.soinside.com 2019 - 2024. All rights reserved.