Вы можете написать код переподключения самостоятельно, но на это уйдет время, и я не думаю, что это будет легко.Я бы порекомендовал использовать пул соединений, чтобы несколько соединений с MySQL было открыто, и использовать их при необходимости.Это позволит вам периодически проверять, живо ли соединение, и уничтожать / восстанавливать соединение, если это не так.Управлять пулом намного проще, чем управлять одним очень важным соединением.
Похоже, что в используемой вами библиотеке есть пул соединений:
Вместо создания и управлениясоединения один за другим, этот модуль также обеспечивает встроенный пул соединений с использованием mysql.createPool (config)
https://github.com/mysqljs/mysql#pooling-connections
Еще одна опция для пула, которая у меня была успешнойс is generic-pool .Настройка с generic-pool может выглядеть так:
const pool = require('generic-pool');
const mysql = require('mysql');
const connections = pool.createPool({
create: (done) => {
return mysql.createConnection({
hostname: 'localhost',
user: 'root',
password: 'root',
database: 'chat_db'
}).connect(done);
},
destroy: connection => connection.destroy(),
validate: connection => connection.threadId,
}, {
testOnBorrow: true,
acquireTimeoutMillis: 10000,
min: 1,
max: size,
});