【问题标题】:Getting an error while connecting MongoDB: The `uri` parameter to `openUri()` must be a string连接 MongoDB 时出错:`openUri()` 的 `uri` 参数必须是字符串
【发布时间】:2021-06-11 22:20:16
【问题描述】:

我想使用 .env 文件连接我的数据库,但出现错误:

我尝试控制台记录我的 .env 变量,但我得到未定义:

这是我的脚本:

server.js

require("dotenv").config({ path: "./config.env" });
const express = require("express");
const app = express();
const connectDB = require("./config/db");

// Connect DB
connectDB();

app.use(express.json());

app.use("/api/auth", require("./routes/auth"));

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

const server = app.listen(PORT, () =>
  console.log(`Sever running on port ${PORT}`)
);

console.log("```` DB NAME ````", process.env.DATABASE_CONNECTION);

process.on("unhandledRejection", (err, promise) => {
  console.log(`Logged Error: ${err.message}`);
  server.close(() => process.exit(1));
});

db.js

const mongoose = require("mongoose");

const connectDB = async () => {
  await mongoose.connect(process.env.DATABASE_CONNECTION, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useCreateIndex: true,
    useFindAndModify: true,
  });

  console.log("MongoDB Connected");
};

module.exports = connectDB;

config.env

PORT=5000

DATABASE_CONNECTION=mongodb://localhost:27017/node_auth

我检查了其他解决方案,但都没有帮助。

【问题讨论】:

  • 尝试在 config.env 文件中将“mongodb://localhost:27017/node_auth”用引号括起来。
  • 不,仍然出现错误。
  • 我环顾四周并found this。希望对您有所帮助!
  • 嗨,将 config.env 重命名为 .env
  • @MsonC 所以,我试过了,但我得到了语法错误,我写对了吗? require('dotenv').config({C+'/Users/.../auth/config.env'})

标签: javascript database mongodb mongoose mern


【解决方案1】:

这解决了我的问题:

require("dotenv").config({
  path:
    "C:/Users/.../auth/config.env",
});

基本上,写文件的整个路径。

【讨论】:

    猜你喜欢
    • 2019-10-05
    • 2021-05-21
    • 2019-08-11
    • 2021-05-22
    • 2021-03-24
    • 2023-02-11
    • 2020-03-06
    • 2021-06-17
    • 1970-01-01
    相关资源
    最近更新 更多