Prima di tutto, dovresti catch
l'errore, quindi l'app può gestirlo correttamente e non si arresta in modo anomalo quando la connessione mysql viene chiusa per qualche strano motivo. Prova con connection.on('error', ...)
o con blocchi try-catch
.
Per mantenere una connessione aperta, dovresti riconnetterti alla chiusura. O semplicemente usa la connessione in pool di mysql , che gestisce molto bene la riconnessione automatica, con una sola modifica del codice.
PS:il raggruppamento di più connessioni è generalmente una buona idea per le app asincrone, come i server, ma è sicuro mantenere una singola connessione tramite il raggruppamento (connectionLimit : 1
) solo per la riconnessione automatica stessa.
PPS:il timeout di inattività di MySQL può essere configurato nel my.cnf
del server