Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

489
Vistas
Cómo cerrar una conexión MongoDB en nodejs

Tengo el siguiente método para conectarme a MongoDB:

 import { Db, MongoClient } from 'mongodb'; let cachedConnection: { client: MongoClient; db: Db } | null = null; export async function connectToDatabase(mongoUri?: string, database?: string) { if (!mongoUri) { throw new Error( 'Please define the MONGO_URI environment variable inside .env.local' ); } if (!database) { throw new Error( 'Please define the DATABASE environment variable inside .env.local' ); } if (cachedConnection) return cachedConnection; cachedConnection = await MongoClient.connect(mongoUri, { useNewUrlParser: true, useUnifiedTopology: true, }).then((client) => ({ client, db: client.db(database), })); return cachedConnection!; }

Y lo uso de la siguiente manera:

 const { db, client } = await connectToDatabase( config.URI, config.USERS_DATABASE ); const user = await db .collection(config.USERS_COLLECTION) .findOne({ _id: new ObjectId(userId) });

Parece estar bien, pero no lo está. El problema de este método es que no cierra las conexiones. Por ejemplo, tengo un clúster en Atlas, y las conexiones siguen creciendo hasta 500. Después de eso, ya no sirve, entra en tiempo de espera y luego mi backend falla.

Para resolver esto, probé con client.close() justo antes de devolver la respuesta a la interfaz.

Me arroja un error que dice MongoError: Topology is closed, please connect . ¿Creo que cierra la conexión antes de que termine? ¿Es correcto? Incluso si lo pongo después de que respondiera el DB.

esta es la captura de pantalla del error:

ingrese la descripción de la imagen aquí

¿Crees que hay una manera de resolver esto o simplemente tengo que hacer todo el procedimiento en cada archivo que necesito para conectarme a mongo? ¿Tú también crees que hice algo mal?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda