最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

处理Mongoose断开连接

运维笔记admin10浏览0评论

处理Mongoose断开连接

处理Mongoose断开连接

我正在使用猫鼬4.13.7

我想连接到mongo但是如果发生错误我想重新连接。但是在重新连接5次之后,如果发生错误,该进程应该退出。

这是代码:

var count = 0;
handleDisconnect();
function handleDisconnect(){
    count++;
    console.log('Trying to connect to mongo. Attempt : ' + count);
    mongoose.connect(config.mongo.uri,{useMongoClient:true});
    mongoose.connection.on('error',(error)=>{
        if (count >= 5){
            console.log('Mongo ERROR');
            console.error(error);
            process.exit(1);
        }
        else{
            setTimeout(handleDisconnect,1000);  
        }
    });
    mongoose.connection.on('open',()=>{
        console.log('Connected to mongo at ' + Date.now());
    });
}

我也发布了代码的输出。我不明白尝试次数是多少?还有一个内存泄漏警告和node:6804错误消息。我究竟做错了什么?

Output of the code

回答如下:

每次发出事件时,都会为error事件附加事件侦听器。这会导致内存泄漏警告,并且还会使每个事件发生的回调函数多次运行。你不应该在handleDisconnect()函数中添加事件处理程序。

例:

function handleDisconnect(mongoError) {
  // check error reason, increment counters, check if errors limit reached
}

mongoose.connection.on('error', handleDisconnect);

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论