sql >> Databáze >  >> NoSQL >> MongoDB

MongoError:topologie byla zničena při používání s NextJs api

Problém, který máte, pochází z tohoto řádku:

  await client.close();

Z dokumentů:

To znamená, když close klient, všechna ostatní otevřená připojení se také uzavřou. Ve vašem případě #2 a #4 začnou běžet krátce po #1 a #3 (ale předtím, než jsou hotová), a spojení na nich uzavřete, dokud jsou stále spuštěny.

Také z dokumentů:

Nejlepším postupem by bylo mít nějakou správu stavu pro vaše bezstavové funkce (já vím), mít službu připojení, která pouze dává vašim bezstavovým funkcím připojení, bylo by také snazší tímto způsobem spravovat chyby.

Přečtěte si více o tomto zde a v dokumentech ovladače nodejs

Rychlým (a velmi suboptimálním) řešením vašeho problému by bylo definovat připojení ve funkci takto:

// 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. Použijte proměnnou s regulárním výrazem k nalezení dat v mongodb (aplikace Meteor)

  2. findAll selže po reinicializaci hry morphia

  3. Volání REST API funguje pouze jednou

  4. Přeneste velké kolekce MongoDB do data.frame v R pomocí rmongodb a plyr