MongoError: topology was destroyed
分析得出,出現這個問題是因為,當mongodb嘗試寫入某個數據的時候,連接被中斷了!
解決方法:檢查代碼中是否存在操作數據的過程中,意外地執行了client.close()
關閉連接了mongod數據庫,如果有則將client.close
刪除,只在最后才關閉連接。
如下代碼所示就是簡單的錯誤:
const MongoClient = require('mongodb').MongoClient
const url = "mongodb://localhost:27017"
const dbName = 'express-project'
// 連接數據庫
MongoClient.connect(url, { useNewUrlParser: true }, (err, client) => {
if (err) throw err
console.log('數據庫已連接')
const db = client.db(dbName)
// -----------!!!!!!!!!!!這里不應該關閉連接,因為下面還要創建一個集合!!!!!!!!!!!---------------
client.close()
// 創建集合collection
db.createCollection("user", (err, res) => {
if (err) throw err
console.log('創建集合')
})
client.close()
})
出現了兩個close(),出錯!需要將中途意外關閉數據庫的語句刪掉即可解決!