MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoError:la topologia è stata distrutta durante l'utilizzo con l'API di NextJs

Il problema che stai riscontrando proviene da questa riga:

  await client.close();

Dai documenti:

Significato quando close il client, anche tutte le altre connessioni aperte si chiudono. Nel tuo caso # 2 e # 4 iniziano a funzionare poco dopo # 1 e # 3 (ma prima che siano terminate) e chiudi la connessione su di esse mentre sono ancora in esecuzione.

Anche dai documenti:

Sarebbe una buona pratica avere una gestione dello stato per le tue funzioni stateless (lo so), avere un servizio di connessione che fornisca solo la connessione alle tue funzioni stateless, sarebbe anche più facile gestire gli errori in questo modo.

Leggi di più su questo qui e nei documenti sui driver di nodejs

Una soluzione rapida (e molto non ottimale) al tuo problema sarebbe definire la connessione all'interno della funzione in questo modo:

// 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();
};