MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoError:topologia została zniszczona podczas używania z NextJs api

Twój problem pochodzi z tej linii:

  await client.close();

Z dokumentów:

Znaczenie, gdy close klienta, wszystkie inne otwarte połączenia również zamykają się. W twoim przypadku #2 i #4 zaczynają działać krótko po #1 i #3 (ale zanim skończą), a ty zamykasz połączenie z nimi, gdy wciąż są uruchomione.

Również z dokumentów:

Najlepszą praktyką byłoby posiadanie pewnego zarządzania stanami dla funkcji bezstanowych (wiem), posiadanie usługi połączeń, która po prostu zapewnia połączenie z funkcjami bezstanowymi, łatwiej byłoby również zarządzać błędami w ten sposób.

Przeczytaj więcej o tym tutaj oraz w dokumentacji sterownika Nodejs

Szybkim (i bardzo nieoptymalnym) rozwiązaniem Twojego problemu byłoby zdefiniowanie połączenia w funkcji w następujący sposób:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Meteor custom mongodb podczas opracowywania

  2. Najlepszy sposób na przechowywanie obrazów w aplikacji internetowej MERN stack

  3. Konwersja DBObject do Java Object podczas pobierania wartości z MongoDB

  4. gdzie wstawić funkcje w codeigniter mongodb

  5. MongoDB przejmuje mLab  —  Jakie są różne alternatywy hostingu MongoDB?