Brug mysql-forbindelsespuljen. Det vil genoprette forbindelsen, når en forbindelse dør, og du får den ekstra fordel ved at være i stand til at lave flere sql-forespørgsler på samme tid. Hvis du ikke bruger databasepuljen, blokerer din app databaseanmodninger, mens du venter på, at aktuelt kørende databaseanmodninger afsluttes.
Jeg definerer normalt et databasemodul, hvor jeg holder mine forespørgsler adskilt fra mine ruter. Det ser sådan ud...
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);
});
});
});