51 lines
2.6 KiB
JavaScript
51 lines
2.6 KiB
JavaScript
const mongoose = require('mongoose');
|
|
|
|
// Переопределяем функцию подключения к БД
|
|
const connectDB = async () => {
|
|
try {
|
|
// Убедись, что process.env.MONGO_URI действительно загружается из .env
|
|
if (!process.env.MONGO_URI) {
|
|
console.error('Ошибка: MONGO_URI не определена в .env файле!');
|
|
process.exit(1);
|
|
}
|
|
|
|
// Получаем URI и проверяем имя базы данных
|
|
let mongoURI = process.env.MONGO_URI;
|
|
|
|
// Проверяем, содержит ли URI имя базы данных
|
|
const uriParts = mongoURI.split('/');
|
|
const lastPart = uriParts[uriParts.length - 1];
|
|
|
|
// Логируем для отладки (можно удалить потом)
|
|
console.log('Имя базы данных из URI:', lastPart.split('?')[0]);
|
|
|
|
// Проверяем, соответствует ли имя базы данных ожидаемому
|
|
// Если имя не соответствует нужному, можно принудительно заменить
|
|
const expectedDBName = 'dating-app'; // Используем одно имя везде
|
|
|
|
if (lastPart.split('?')[0] !== expectedDBName) {
|
|
console.log(`Внимание: имя базы данных в URI (${lastPart.split('?')[0]}) отличается от ожидаемого (${expectedDBName})`);
|
|
// Если в URI нет параметров после имени
|
|
if (!lastPart.includes('?')) {
|
|
uriParts[uriParts.length - 1] = expectedDBName;
|
|
} else {
|
|
// Если есть параметры после имени базы данных
|
|
const params = lastPart.split('?')[1];
|
|
uriParts[uriParts.length - 1] = `${expectedDBName}?${params}`;
|
|
}
|
|
mongoURI = uriParts.join('/');
|
|
console.log('URI подключения был изменен для использования базы данных:', expectedDBName);
|
|
}
|
|
|
|
const conn = await mongoose.connect(mongoURI);
|
|
|
|
console.log(`MongoDB подключена: ${conn.connection.host}`); // Эта строка тоже важна
|
|
} catch (error) {
|
|
console.error(`Ошибка подключения к MongoDB: ${error.message}`);
|
|
process.exit(1); // Эта строка может быть причиной, если есть ошибка подключения
|
|
}
|
|
};
|
|
|
|
// Экспортируем функцию явным образом
|
|
module.exports = connectDB;
|
|
console.log('Модуль db.js загружен, тип экспортируемого объекта:', typeof module.exports); |