En primer lugar, debe catch
el error, por lo que su aplicación puede manejarlo correctamente y no falla cuando la conexión mysql se cierra por algún motivo extraño. Pruebe con connection.on('error', ...)
o con bloques try-catch
.
Para mantener una conexión abierta, debe volver a conectarse al cerrar. O simplemente use la conexión de agrupación de mysql , que maneja muy bien la reconexión automática, con un solo cambio de código.
PD:En general, agrupar varias conexiones es una buena idea para las aplicaciones asíncronas, como los servidores, pero es seguro mantener una única conexión a través de la agrupación (connectionLimit : 1
) solo para la reconexión automática.
PPS:el tiempo de espera de inactividad de Mysql se puede configurar en el servidor my.cnf