40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
import { MongoClient } from "mongodb";
|
||
|
||
const MONGO_HOST = process.env.MONGO_HOST || "mongo";
|
||
const MONGO_PORT = process.env.MONGO_PORT || "27017";
|
||
const MONGO_DB = process.env.MONGO_DB || "dupe";
|
||
const MONGO_USER = process.env.MONGO_USER || "dupe";
|
||
const MONGO_PASS = process.env.MONGO_PASS || "dupe";
|
||
const MONGO_AUTH_SOURCE = process.env.MONGO_AUTH_SOURCE || "admin";
|
||
|
||
const DEFAULT_URI = `mongodb://${encodeURIComponent(MONGO_USER)}:${encodeURIComponent(
|
||
MONGO_PASS
|
||
)}@${MONGO_HOST}:${MONGO_PORT}/${encodeURIComponent(MONGO_DB)}?authSource=${encodeURIComponent(
|
||
MONGO_AUTH_SOURCE
|
||
)}`;
|
||
|
||
const MONGO_URI = process.env.MONGO_URI || DEFAULT_URI;
|
||
|
||
let client = null;
|
||
let db = null;
|
||
|
||
export async function connectMongo() {
|
||
if (client && db) return { client, db };
|
||
|
||
const mongoClient = new MongoClient(MONGO_URI, {
|
||
maxPoolSize: 10,
|
||
serverSelectionTimeoutMS: 5000
|
||
});
|
||
|
||
await mongoClient.connect();
|
||
client = mongoClient;
|
||
db = mongoClient.db(MONGO_DB);
|
||
|
||
console.log(`📦 MongoDB bağlantısı hazır (db: ${db.databaseName})`);
|
||
return { client, db };
|
||
}
|
||
|
||
export function getDb() {
|
||
return db;
|
||
}
|