Questa è in realtà una preoccupazione di MySQL e non di Node.js. Puoi utilizzare la proprietà wait_timeout
di MySQL per aumentare il numero di volte in cui mantenere la connessione aperta.
Controlla maggiori dettagli su questa proprietà qui
Di seguito è riportato un esempio di codice per il tuo singleton che creerà una nuova connessione quando quella corrente viene chiusa. Nello scenario, non avrai mai più di 1 connessione attiva se utilizzi sempre l'App Singleton per ottenere la connessione:
getConnection: function() {
var app = common.model.connections.App.getInstance();
if(!app.connection.isConnected()){
//connect if connection is closed.
app.connection.connect();
}
return app.connection;
}