Express na poważnie oraz TypeScript – Część 2

Lecimy dalej!

W drugiej części zamienimy naszą jedno plikową aplikację na wygenerowaną strukturę z generatora Express. Następnie zamienimy kod z JS na TS oraz przy pomocy Gulp’a sprawimy aby wszystko razem działało

Do dzieła!

Zaczniemy od zainstalowania express-generator na lokalnej maszynie aby wygenerować sobie szkielet aplikacji.

Następnie uruchamiamy polecenie które wygeneruje cały szkielet aplikacji (jeśli robiłeś poprzednią część usuń katalog app)

W efekcie otrzymaliśmy taką strukturę

Następnie udajemy się do pliku package.json i zamieniamy

na

aby aplikacja nadal działała w naszym kontenerze.
Po uruchomieniu kontenera przywita nas Express

Uwaga W razie błędów czasami pomaga usunięcie kontenera aby w całości zbudował się na nowo.

W katalogu app tworzymy plik app.ts o następującej treści

Następnie przechodzimy do katalogu app/routes i tworzymy pliki index.ts oraz users.ts

index.ts

users.ts

OK teraz potrzebujemy skompilować wszystko z powrotem do JS.

Dopisujemy do pliku Dockerfile zaraz pod FROM node:argon

Będzie nam to również potrzebne lokalnie, więc odpalamy w konsoli

Do package.json dodajemy devDependencies tak aby plik wyglądał jak poniżej

Przechodzimy do katalogu app i tworzymy tam plik tsconfig.json będzie to konfiguracja kompilatora TypeScript

Następnie będą dalej w katalogu app odpalamy dwa polecenia

Teraz czas na Gulpa

Tworzymy plik gulpfile.js

przechodzimy do pliku package.json i wprowadzamy modyfikację w sekcji scripts

Ostatnie modyfikację dotyczą dockera tak więc w pliku Dockerfile

oraz w docker-compose.yml

Budujemy dockera na nowo oraz uruchamiamy

W tym momencie również przywita nas Express jednak w tej chwili jest on uruchomiony przez Gulpa i skompilowany z TypeScriptu

W kolejnej części dodamy obsługę MongoDB. Zbudujemy model użytkownika i stworzymy API do rejestracji oraz logowania.

GitHub

https://github.com/thehardway15/MEAN.TS