MongoDB报错:MongoExpiredSessionError Cannot use a session that has ended

  • 这个报错是因为在执行代码的时刻,数据库的连接已经关闭了。

  • 比较大的可能是查询数据或更新数据时忘了使用 await ​关键字,没有等待异步操作完成,导致先执行了关闭了数据库连接的代码,然后才执行了对数据进行操作的代码。

  • 比如:

    • import { MongoClient } from "mongodb";
      const client = new MongoClient("mongodb://127.0.0.1:27017");
      
      async function processUsers() {
        await client.connect();
        const db = client.db("MyApp");
        const usersCollection = db.collection("users");
        // 这里应该使用await关键字,等待异步操作完成再继续执行
        const user = usersCollection.findOne({ id: 1 });
      }
      
      processUsers()
        .catch(console.error)
        .finally(() => client.close());
      
  • 参考: