Какая-то лажа при использовании диапазона заглавных букв А-Я в списке символов. Если его не указывать (а его и не надо указывать - ведь указан флаг i), то всё работает.
нужен либо какой-то бэкэнд (или он уже есть и на nodejs? тогда смотри в сторону sequelize чтобы не сильно заморачиваться) либо СУБД с http-интерфейсом типа firebase.
Напрямую из браузера взаимодействовать с mysql не получится.
Нужно действовать в предыдущем then()
потому что в следующий .then попадает результат разрешения промиса, который возвращает предыдущий .then, а в данном случае - undefined https://learn.javascript.ru/promise-basics
Попробуй заценить https://ru.vuejs.org/ (для работы с данными) + https://quasar.dev/ (для интерфейса)
всякие"калькуляторы" делать милое дело, сосредоточившись на данных вместо обновления DOM и отслеживания событий