Bạn đang sử dụng mongoose, nó phát ra các sự kiện (mẫu EventEmitter) khi cơ sở dữ liệu gặp sự cố và khi cơ sở dữ liệu đang kết nối lại và khởi động lại.
từ mã mongoose được tìm thấy tại đây chúng ta có thể thấy rằng kết nối db thư viện - connect.js
có các sự kiện sau được phát ra:* @param {Mongoose} tạo cơ sở cho phiên bản mongoose * @inherits NodeJS EventEmitter
http://nodejs.org/api/events.html#events_class_events_eventemitter
* @event connecting
:Được phát ra khi kết nối connection.{open,openSet}()
được thực thi trên kết nối này.
-
@event
connected
:Được phát ra khi kết nối này kết nối thành công với db. Có thể được phát ra nhiều lần trongreconnected
các tình huống. -
@event
open
:Được phát ra sau khi chúng tôiconnected
vàonOpen
được thực thi trên tất cả các mô hình kết nối này. -
@event
disconnecting
:Được phát ra khiconnection.close()
đã được thực thi. -
@event
disconnected
:Được phát ra sau khi ngắt kết nối khỏi db. -
@event
close
:Được phát ra sau khi chúng tôidisconnected
vàonClose
được thực thi trên tất cả các mô hình kết nối này. -
@event
reconnected
:Được phát ra sau khi chúng tôiconnected
và sau đódisconnected
, tiếp theo là thành công một kết nối thành công khác. -
@event
error
:Được phát ra khi xảy ra lỗi trên kết nối này. -
@event
fullsetup
:Được phát ra trong kịch bản thiết lập bản sao, khi các phần tử chính và ít nhất được chỉ định trong chuỗi kết nối được kết nối. -
@event
all
:Được phát ra trong kịch bản thiết lập bản sao, khi tất cả các nút được chỉ định trong chuỗi kết nối được kết nối.
Khi cơ sở dữ liệu không hoạt động, bạn sẽ nhận được hai sự kiện:1. ngắt kết nối2. error (lỗi mà trình điều khiển gặp phải)
Khi cơ sở dữ liệu hoạt động trở lại, bạn sẽ nhận được sự kiện kết nối lại.
Vì vậy, bạn không cần phải cố gắng bắt lỗi thay vào đó bạn nên lắng nghe các sự kiện này.
Bạn có thể tìm thấy thêm thông tin hữu ích về lỗi kết nối và kết nối lại tại đây .
Bài viết này giải thích cách sử dụng và định cấu hình autoReconnect và bufferMaxEntries theo cài đặt của bạn.