Zgodnie z dokumentacją :
connection.end()
ma być wtedy wywoływana tylko wtedy, gdy przestajesz wysyłać zapytania do MySQL, czyli gdy Twoja aplikacja się zatrzymuje. Nie powinieneś tworzyć/kończyć połączeń przez cały czas:po prostu używaj tego samego połączenia do wszystkich zapytań (lub użyj puli połączeń, aby być bardziej wydajnym).