如何通过mongoosejs连接到mongodb时处理错误
问题描述:
如果在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,所以它什么都不做,只是调用回调功能,这是合理的竹叶提取?
我该怎么办?
答
嘿看起来像你需要在最大连接空闲时间设置低值 这样开放的便捷交通连接应该得到通过的MongoDB
自动关闭