我正在尝试使用 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();
};
从外部删除console.log, 我认为错误没有发生在 try/catch 块中, 检查进口
import variables from '../variables';
import { logger } from '../utilities';
也试试这个,
mongoose.connect(process.env.DATABASE_URL, {
useNewUrlParser: true,
useUnifiedTopology: true
})