讓 Mongoose 再也不重複連接數據庫(如何正確鏈接以解決升級後的報錯)

升級了 Mongoose 後,發現項目打不開了。報錯:html

MongooseError: You can not `mongoose.connect()` multiple times while connected數據庫

就是不容許你重複鏈接。搜了一下,是從 v5.6.1 版本開始加入這個檢查的。mongoose

看了下官方文檔,想出瞭解決方法——在 `mongoose.connect(...)` 前面加一句鏈接判斷:spa

if (mongoose.connection.readyState !== 0) {
  next();
  return;
}

其中有 `next()` 是由於我作成了中間件,其實關鍵是看 `mongoose.connection.readyState`,其爲 0 時,表示未鏈接到數據庫,那麼接下來就 `mongoose.connect()` 便可,如不等於 0 ,說明已經鏈接上了,就不用繼續走下去了。code

貼一下 state 表明的狀態:htm

  • 0: disconnected
  • 1: connected
  • 2: connecting
  • 3: disconnecting
  • 99: uninitialized

雖然麻煩了點,但減小沒必要要的重複鏈接仍是頗有必要的。中間件

相關文章
相關標籤/搜索