Utilisez le pool de connexion mysql. Il se reconnectera lorsqu'une connexion mourra et vous aurez l'avantage supplémentaire de pouvoir effectuer plusieurs requêtes sql en même temps. Si vous n'utilisez pas le pool de bases de données, votre application bloquera les requêtes de base de données en attendant la fin des requêtes de base de données en cours d'exécution.
Je définis généralement un module de base de données dans lequel je sépare mes requêtes de mes routes. Ça ressemble à ça...
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'example.org',
user : 'bob',
password : 'secret'
});
exports.getUsers = function(callback) {
pool.getConnection(function(err, connection) {
if(err) {
console.log(err);
callback(true);
return;
}
var sql = "SELECT id,name FROM users";
connection.query(sql, [], function(err, results) {
connection.release(); // always put connection back in pool after last query
if(err) {
console.log(err);
callback(true);
return;
}
callback(false, results);
});
});
});