Co do bazy danych:
https://www.npmjs.com/package/mysql2 Myślę, że jest tam wszystko rozpisane krok po kroku więc nie będziesz miał żadnych problemów.
Co do console.log to nie tak, że jest to złe. Nie możesz w ten sposób patrzeć. Po prostu w praktyce jest to często niewygodne i znacznie lepiej jest debugować kod. Dodając dziesiątki console logów potem przed puszczenem pull requesta musisz pamiętać aby się ich pozbyć, przez co czasem widać w niektórych PR pozostałości, bawisz się wtedy w ich czyszczenie w CR itp. Szkoda czasu :) Co więcej, dość często zdarza mi się widzeć, jak ludzie usilnie consol logują zwrotki ajaxowe, gdzie znacznie lepiej po prostu wejść w zakładkę Network w dev toolsach i podejrzeć nie tylko response ale i cały request, bo czasem okazuje się, że powodem błędu jest np. coś nie tak w queryParams czy nagłówkach itp.
Ale z drugiej strony jeśli chcesz przetestować np. jakąś jedną prostą rzecz to console.log jest bardzo przydatny. Co więcej, sam czasami wrzucę console.loga w kod podczas pisania testów jednostkowych jeśli nie mogę dojść co mi się wywala, a komuikaty jasmine czy Jest'a są niejednoznaczne. Ale staram się to ogranicać do minimum i jak piałem, gdy tylko testy przejdą od razu wszystkie logi usuwam. Zresztą do tego i tak powinieneś mieć odpowiednie reguły eslint/tslint które Ci to wykryją - tylko jeśli chcesz logów używać do analizy w przeglądarce to musisz sobie console ustawić jako warn w regułach lintera a nie jako error.