Gebruik de mysql-verbindingspool. Het zal opnieuw verbinding maken wanneer een verbinding wegvalt en u krijgt het extra voordeel dat u meerdere SQL-query's tegelijkertijd kunt maken. Als u de databasepool niet gebruikt, blokkeert uw app databaseverzoeken terwijl het wacht tot de momenteel lopende databaseverzoeken zijn voltooid.
Ik definieer meestal een databasemodule waarin ik mijn query's gescheiden houd van mijn routes. Het ziet er ongeveer zo uit...
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);
});
});
});