Esta é realmente uma preocupação do MySQL e não do Node.js. Você pode usar a propriedade
wait_timeout
do MySQL para aumentar o número de tempo para manter a conexão aberta. Verifique mais detalhes sobre esta propriedade aqui
Abaixo está um exemplo de código para seu singleton que criará uma nova conexão quando a atual for fechada. No cenário, você nunca terá mais de 1 conexão ativa se sempre usar o App Singleton para obter a conexão:
getConnection: function() {
var app = common.model.connections.App.getInstance();
if(!app.connection.isConnected()){
//connect if connection is closed.
app.connection.connect();
}
return app.connection;
}