以下代码在进行cc.deleteOne()删除操作的时候,因为是异步操作,需使用await关键字,入未使用就会出现Attempted to check out a connection from closed connection pool,该错误是因为,数据操作还没有完成,就进行了关闭数据库的连接操作。
修正后的代码
const {MongoClient} = require('mongodb')
const client = new MongoClient(url)
const clientFun = async(name,c)=>{
await client.connect() // 连接数据库
const db = client.db(name) // 连接哪个数据库
return db.collection(c) // 操作哪个集合
}
const main = async()=>{
var cc= await clientFun('mytest','cc')
const d = await cc.insertMany([
{ username: '张三', age: 12 },
{ username: '李四', age: 6 },
{ username: '王五', age: 12 },
{ username: '赵六', age: 20 },
{ username: '潘八', age: 20 }
])
console.log(await cc.deleteOne( {username:'张三'}))
}
main().finally(()=>{
client.close()
})