Das Problem, das Sie haben, kommt von dieser Zeile:
await client.close();
Aus der Dokumentation:
Das heißt, wenn Sie close
des Clients, alle anderen offenen Verbindungen werden ebenfalls geschlossen. In Ihrem Fall beginnen #2 und #4 kurz nach #1 und #3 zu laufen (aber bevor sie fertig sind), und Sie schließen die Verbindung auf ihnen, während sie noch laufen.
Auch aus der Dokumentation:
Es wäre eine bewährte Methode, eine Zustandsverwaltung für Ihre zustandslosen Funktionen zu haben (ich weiß), einen Verbindungsdienst zu haben, der Ihren zustandslosen Funktionen nur die Verbindung gibt, es wäre auch einfacher, Fehler auf diese Weise zu verwalten.
Lesen Sie mehr darüber hier und in der nodejs-Treiberdokumentation
Eine schnelle (und sehr suboptimale) Lösung für Ihr Problem wäre, die Verbindung innerhalb der Funktion wie folgt zu definieren:
// 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();
};