Det problem, du har, kommer fra denne linje:
await client.close();
Fra dokumenterne:
Det betyder, når du close
klienten lukker alle andre åbne forbindelser også. I dit tilfælde begynder #2 og #4 at køre kort efter #1 og #3 (men før de er færdige), og du lukker forbindelsen på dem, mens de stadig kører.
Også fra dokumenterne:
Det ville være en bedste praksis at have noget tilstandsstyring for dine statsløse funktioner (jeg ved det), have en forbindelsestjeneste, der bare giver dine statsløse funktioner forbindelsen, det ville også være nemmere at håndtere fejl på denne måde.
Læs mere om dette her og i nodejs driverdokumenter
En hurtig (og meget suboptimal) løsning på dit problem ville være at definere forbindelsen i funktionen sådan:
// 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();
};