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());
参考: