sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoError:topologin förstördes vid användning med NextJs api

Problemet du har kommer från den här raden:

  await client.close();

Från dokumenten:

Det betyder när du close klienten stänger alla andra öppna anslutningar också. I ditt fall börjar #2 och #4 köras kort efter #1 och #3 (men innan de är klara), och du stänger anslutningen på dem medan de fortfarande körs.

Även från dokumenten:

Det skulle vara en bästa praxis att ha viss tillståndshantering för dina tillståndslösa funktioner (jag vet), ha en anslutningstjänst som bara ger dina tillståndslösa funktioner anslutningen, det skulle också vara lättare att hantera fel på detta sätt.

Läs mer om detta här och i nodejs drivrutinsdokument

En snabb (och mycket suboptimal) lösning på ditt problem skulle vara att definiera anslutningen inom funktionen så här:

// 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. Android/MongoDB:NoClassDefFoundError:com.mongodb.DBPortPool

  2. Vad är rätt tillvägagångssätt för att uppdatera många poster i MongoDB med Mongoose

  3. Avinstallera mongoDB från ubuntu

  4. MongoError,err:E11000 dubblettnyckelfel