あなたが抱えている問題はこの行から来ています:
await client.close();
ドキュメントから:
close
ときの意味 クライアント、他の開いている接続もすべて閉じます。あなたの場合、#2と#4は#1と#3の直後(ただし、完了する前)に実行を開始し、実行中に接続を閉じます。
ドキュメントからも:
ステートレス関数の状態管理(私は知っています)を用意し、ステートレス関数に接続を提供するだけの接続サービスを用意することをお勧めします。この方法でエラーを管理するのも簡単です。
この
問題に対する迅速な(そして非常に最適ではない)解決策は、次のように関数内で接続を定義することです。
// 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();
};