MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoError:топологията беше унищожена при използване с NextJs api

Проблемът, който имате, идва от този ред:

  await client.close();

От документите:

Което означава, когато close клиента, всички други отворени връзки също се затварят. Във вашия случай #2 и #4 започват да се изпълняват малко след #1 и #3 (но преди да са готови) и затваряте връзката към тях, докато те все още работят.

Също от документите:

Би било най-добра практика да имате известно управление на състоянието за вашите функции без състояние (знам), да имате услуга за свързване, която просто дава връзката на вашите функции без състояние, също така би било по-лесно да управлявате грешки по този начин.

Прочетете повече за това тук и в документи за nodejs драйвер

Бързо (и много неоптимално) решение на вашия проблем би било да дефинирате връзката във функцията така:

// 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. Добавете поле, което не е в схемата с мангуста

  2. Mongoose:CastError:Прехвърлянето към ObjectId не бе успешно за стойност [object Object] на път _id

  3. Списък на всички колекции в базата данни mongo в java

  4. Вземете колекция и добавете стойност към отговора

  5. Как да приложим ограничения в MongoDB?