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