1
如果在mongodb準備好之前調用mongoose.connect(...),將會得到錯誤Error: connect ECONNREFUSED
,這沒關係,但在mongodb準備好之後,貓鼬不會重新連接,爲什麼?如何通過mongoosejs連接到mongodb時處理錯誤
來處理這種情況,我稱之爲mongoose.disconnect
並再次回調函數調用mongoose.connect(...),如:
connection = mongoose.connect(...).connection;
connection.on("error", function(err) {
setTimeout(function() {
mongoose.disconnect(function(){
connection = mongoose.connect(...).connection;
}, 5000);
});
這段代碼可以重新連接,但是當我開始的MongoDB中, MongoDB中獲得太多的聯繫,所以我檢查mongoose.disconnect
,它叫connection.close
,並且代碼
Connection.prototype.close = function (callback) {
var self = this;
this._closeCalled = true;
switch (this.readyState){
case 0: // disconnected
callback && callback();
break;
case 1: // connected
case 4: // unauthorized
this.readyState = STATES.disconnecting;
this.doClose(function(err){
在我的情況下,連接沒有準備好,所以readyState
是0,所以它什麼都不做,只是調用回調功能,這是合理的竹葉提取?
我該怎麼辦?