post-thumbnail

Elephant in the room.

23/09/2024

Udało się!

Jak pisałem w ostatnim wpisie, rozwiązanie tworzenia backendu nie wyjdzie na hostingerze.

Pisałem także o „SUPABASE„, czyli rozwiązania „Backend-as-a-Service” (BaaS) gdzie cała logika, oraz sama baza danych utrzymywana jest przez kogoś innego.

Podoba mi się takie rozwiązania z prostego powodu, jestem głupiutkim fronciakiem.

Takim oto sposobem z tworzenia backend’u, i późniejszych problemów ze snem, z powodów utrzymywania wszystkiego jako „bezpieczne-ish”

Ale co się udało?

Zacznijmy od tworzenie tabel w Supabase

Supabase korzysta z Postgresql, czyli system baz danych z którego nie korzystałem, jako że technik informatyk przygotowuje do MYSQL, nie jest to jakaś ogromna zmiana i szczerze mówiąc nie do końca jeszcze rozumiem różnice pomiędzy dwoma

Super! udało się stworzyć podstawowe template tabele, dalej spróbujmy dostarczyć te dane do front-endu

Po kilku godzinach próbowania zrozumieć co ja tak właściwie próbuje zrobić, zrozumiałem że do plików
.env w VITE odnosi się inaczej niżeli do plików .env w REACT i straciłem mnóstwo czasu google’ując złe rzeczy. lekcja zapamiętana.

o tym czym jest VITE napiszę w kolejnym wpisie, w tym mi się już nie chce.

Co to jest to całe .env?

pliki .env z tego co rozumiem są plikami które zawierają informacje które niekoniecznie chcesz pokazywać osobom które mają dostęp do projektu.

Np:

  • Klucze API (w moim przypadku do łączenia się z bazą danych)
  • Tokeny
  • Hasła

Po kompletnym chaosie związanym ze zmienianiem vite.config.js doszedłem do prostego poradnika który dopiero rozświetlił mi drogę.

I takim oto sposobem:

Pierwsza „komórka” tabeli (tylko biały tekst) została pobrana z bazy danych, całkiem klawe!

spójrzmy na kod:

Connect to DB code

zacznijmy od tego że żeby wszystko działało musimy pobrać pakiet supabase z npm

Następnie bierzemy SupabaseURL oraz supabaseKEY ze strony supabase.

Wsadzamy wszystko do pliku .env, pobieramy wartości w supabase.js, tworzymy nowego klienta i boom!

Na tym etapie warto się dowiedzieć:

Co to useState i useEffect?

„useState jest hookiem reactowym, który pozwala na dodanie do komponentu zmiennej stanu.” ~ react.dev

Załóżmy że pobieramy naprawdę dużo danych z bazy danych, chwilkę może to zająć, żeby pokazać użytkownikowi że w tle coś się dzieje tworzymy komponent <LoadingBar>
i ustawiamy stan isLoading = true;.

Gdy dane się załadują możemy zmienić stan na isLoading = false;

wyglądałoby to mniej-więcej tak:

„useEffect to hook reactowy, który pozwala synchronizować komponent z zewnętrznym systemem.” ~ react.dev

I w taki prosty sposób pobieramy wszystko ( .select(); ) z tabeli „ostrowy_do_czest”, sprawdzamy czy nie ma błędów i wyświetlamy dane:

ugh… czemu to tak wygląda?

z bazy danych dostajemy jako tablice wewnątrz której są obiekty

więc w jakiś sposób muszę użyć

piosenka na dziś: