Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

491
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda