У нас есть запущенный сервер с двумя подключениями к базе данных, оба они созданы с использованием пула.
Пример:
var connection = mysql.createPool({
host: config.mysql.host,
user: config.mysql.user,
password: config.mysql.pass,
database: config.mysql.database
});
Тем не менее, мы делаем много запросов, но пул заботится об обработке / закрытии активных соединений, как мне сказали.
Сейчас соединения просто накапливаются, а старые связи не обслуживаются. В конце концов у нас закончатся доступные подключения, и сервер зависнет.
Функция запроса;
var query = function(query){
return new Promise(function(resolve, reject){
con.query(query, function(err, row){
if (err){
reject(err);
}
resolve(row);
});
});
}
Использование функции;
db.query('SELECT * FROM `users` WHERE `isBanned` = 0').then(function(users){
//active users
}).catch(function(err){
...
});
Все соединения, которые накапливаются, находятся в команде Спать
Обновлено: объединить соединения в один пул базы данных
Main.js
var pool = mysql.createPool({
connectionLimit: 250,
host: config.mysql.host,
user: config.mysql.user,
password: config.mysql.pass,
database: config.mysql.database,
charset: 'utf8_general_ci'
});
module.exports.pool = pool;
Database.js (в значительной степени только для функции запроса)
var main = require('./server.js');
var query = function(query){
return new Promise(function(resolve, reject){
main.pool.query(query, function(err, row){
if (err){
reject(err);
}
resolve(row);
});
});
}
module.exports = {
con: main.pool,
query: query
};



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Комментарии не подлежат расширенному обсуждению; этот разговор был переехал в чат.