He inicializado la conexión a mi mongodb y ahora exporto la base de datos a otros archivos nodejs. ¿Cómo puedo hacer eso?
Pensé en algo como esto, pero está dando errores.
let database; export const connectDB = async () => { const client = new MongoClient(config.dbUri, { useUnifiedTopology: true, }); try { await client.connect(); database = client.db('azkaben'); logger.info('Connected to Database'); } catch (e) { logger.error(e); } finally { await client.close(); } }; export default databaseError: valor indefinido de la base de datos
La base de database siempre será nula cuando la importe.
connectDB es una llamada aync en el momento en que se ejecuta, la variable de su base de datos ya está cargada como nula.
connectDB puede devolver la base de database desde aquí.
export const connectDB = async () => { const client = new MongoClient(config.dbUri, { useUnifiedTopology: true, }); try { await client.connect(); database = client.db('azkaben'); return database; // you can get from here logger.info('Connected to Database'); } catch (e) { logger.error(e); } finally { await client.close(); } }; export const connectDB = async () => { if (database) return database; // return if database already connected. const client = new MongoClient(config.dbUri, { useUnifiedTopology: true, }); try { await client.connect(); database = client.db('azkaben'); return database; // you can get from here logger.info('Connected to Database'); } catch (e) { logger.error(e); } finally { await client.close(); } };