sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoError:la topología se destruyó mientras se usaba con la API de NextJs

El problema que tienes proviene de esta línea:

  await client.close();

De los documentos:

Significado cuando close el cliente, cualquier otra conexión abierta también se cierra. En su caso, #2 y #4 comienzan a ejecutarse poco después de #1 y #3 (pero antes de que terminen), y usted cierra la conexión en ellos mientras aún se están ejecutando.

También de los documentos:

Sería una mejor práctica tener algo de administración de estado para sus funciones sin estado (lo sé), tener un servicio de conexión que solo proporcione la conexión a sus funciones sin estado, también sería más fácil administrar los errores de esta manera.

Lea más sobre esto aquí y en los documentos del controlador nodejs

Una solución rápida (y muy subóptima) a su problema sería definir la conexión dentro de la función de la siguiente manera:

// remove the definition from here

export default async (req, res) => {
     // and move it here
     const client = new MongoClient(process.env.DB_URI, {});
     await client.connect();

      .....

     await client.close();
};