Узел Mongodb создает много соединений при переподключении - PullRequest
0 голосов
/ 05 июля 2018

У меня есть этот скрипт с очень простым подключением Монго. Если соединение с базой данных потеряно, при восстановлении соединения будет много связи с базой данных. Знаете ли вы, есть ли ошибка в моем коде или в библиотеке? Я тоже проверял это с мангустом, и у меня та же проблема.

var mongodb = require('mongodb').MongoClient;
var options = {
useNewUrlParser: true,
autoReconnect: true,
poolSize: 3,
reconnectTries: Number.MAX_VALUE,
reconnectInterval: 1000
}
var conectDate = new Date();
var count = 0;

// Connect to the db
mongodb.connect(url, options, function (err, db) {
if (!err) {
console.log("We are connected");
db.on('close', function () {
    console.log('Close')
})
db.on('reconnect', function () {
    console.log('Reconnect')
})
}
}

мангуст код

var mongoose = require('mongoose');

var url = 'mongodb://localhost:28410/colection';
var options = {
autoReconnect: true,
poolSize: 3,
reconnectTries: Number.MAX_VALUE,
reconnectInterval: 1000
};

mongoose.connect(url, options, function (err) {
if (!err) {
    mongoose.connection.on('disconnected', function () {
    var currentDate = '[' + new Date().toUTCString() + '] ';
    console.log(currentDate + 'Mongo disconnected');
});

mongoose.connection.on('connected', function () {
    var currentDate = '[' + new Date().toUTCString() + '] ';
    console.log(currentDate + 'Mongo connected');
});

}
})

Ответы [ 2 ]

0 голосов
/ 31 июля 2018

Это не ошибка кода, она воспринимается как ошибка в ядре Mongodb и mongoose .

0 голосов
/ 05 июля 2018

Вы можете сделать, как показано ниже просто:

// Lets build Mongo Connection String based on environment information
const connectionString =  "mongodb://" + DBOptions.user + ":" + encodeURIComponent(DBOptions.pass) + "@" + DBOptions.url +
                          ":" + DBOptions.port + "/" + DBOptions.dbName + "?" +
                          "ssl=" + DBOptions.ssl + "&replicaSet=" + DBOptions.replicaSet;

//const localString = 'mongodb://localhost:27017/BusinessDev';
// Connect to MONGO INSTANCE!!!!
mongoose.connect(connectionString,{
  useMongoClient: true,
}).catch((e) => {
    logger.error('Error in connect with mongo client',e);
});


mongoose.connection.on('connected', function () {
    logger.info(chalk.underline(`APP MONGODB@${mongoose.version}:`) );
});

mongoose.connection.on('disconnected', function () {
    logger.info(`Mongoose disconnected to: ${chalk.red.bold(DBOptions.dbName)}`);
});

process.on('SIGINT', function () {
    logger.info(chalk.red.bold('\nMongoose disconnected through app termination\n'));
    process.exit(0);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...