Проблемът, който имате, идва от този ред:
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();
};