尝试连接到从atlas获取的mongodb连接字符串时出现奇怪的错误

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

我正在尝试使用 mongoose 和 MongoDB atlas 中的连接字符串连接到 mongodb,但我不断收到以下错误:

类型错误:无法读取未定义的属性(读取“构造函数”)

我安装了最新版本(8.7.3)并将其降级到7.6.0,这是我在之前的项目中使用的。两者都给出了相同的错误。

.env
读取连接字符串并对其进行硬编码,会出现相同的错误。

这是负责连接的代码。任何帮助将不胜感激

import dotenv from 'dotenv';
import mongoose from 'mongoose';
import variables from '../variables';
import { logger } from '../utilities';

dotenv.config();

console.log('DB_URI', process.env.DATABASE_URL);

export const connect = async (): Promise<void> => {
  try {
    if (!process.env.DATABASE_URL) {
      throw new Error('DATABASE_URL not provided');
    }

    await mongoose.connect("mongodb+srv://username:[email protected]/?retryWrites=true&w=majority&appName=Cluster0");
    console.log('DB connected successfully');
    logger.info(`DB is successfully connected`);
  } catch (error) {
    console.log('DB connection error>>', error);
    logger.error(`DB connection error ${error}`);
  }
};

export const disconnect = () => {
  if (!process.env.DATABASE_URL) {
    return;
  }
  mongoose.disconnect();
};
node.js mongodb express mongoose mongodb-atlas
1个回答
0
投票

从外部删除console.log, 我认为错误没有发生在 try/catch 块中, 检查进口

import variables from '../variables';
import { logger } from '../utilities';

也试试这个,

mongoose.connect(process.env.DATABASE_URL, { 
  useNewUrlParser: true, 
  useUnifiedTopology: true 
})
© www.soinside.com 2019 - 2024. All rights reserved.