Projekt aplikacji SaaS
8 godz. 8 min · Next.js · Full-stack i Programowanie
Daniel NoworytaFull stack DeveloperNaucz się tworzyć bezpieczne systemy uwierzytelniania i autoryzacji, korzystając z Clerk. Pokażę Ci, jak to robić krok po kroku, aby Twoje aplikacje były bezpieczne i profesjonalne.
Zrozumiesz, jak skutecznie i bezboleśnie połączyć swoją aplikację Next.js z bazą danych PostgreSQL na DigitalOcean. Pokażę Ci, jak używać Prismy, aby ułatwić ten proces.
Dowiesz się, jak zarządzać routingiem i nawigacją w swojej aplikacji, aby użytkownicy mogli łatwo i intuicyjnie poruszać się po Twojej stronie.
Pokażę Ci, jak z łatwością wdrożyć swoją aplikację na Vercel, jednym z najpopularniejszych środowisk hostingowych dla aplikacji Next.js.
Nauczysz się zarządzać stanem aplikacji i jak wykorzystać server actions w praktyce, co pozwoli Ci na tworzenie bardziej zaawansowanych i dynamicznych funkcji.
Ten kurs jest dla osób, które już mają pewne doświadczenie z JavaScript i chcą zgłębić swoje zrozumienie Next.js. Zakładamy, że znasz podstawy TypeScript, TailwindCSS, ale nie potrzebujesz doświadczenia z Next.js - wszystko wyjaśnię Ci od podstaw!
Dobrze.
Teraz, kiedy już mamy dane naszego użytkownika w naszej bazy danych.
Musimy zacząć się odczytywaniem tych danych.
W naszym komponencie Dashboard Page możemy zacząć tutaj od tego, że
ten komponent to jest komponent już przerobiłem na komponent asynchroniczny,
dlatego, że jest to komponent po stronie serwera.
Dlatego musimy teraz zadbać o to,
żebyśmy mieli jakieś dane czy const data równa się.
I w tym momencie możemy zapisać data.
Nie mamy oczywiście tej funkcji, jeszcze musimy to ładować.
I w tym momencie przejdźmy do góry i
stworzymy naszą funkcję, która będzie odpowiedzialna za to, żeby pobrać
odpowiednie subskrypcje danego użytkownika.
Czyli const data for dashboard
równa się i tutaj i w naszym przypadku mamy tutaj funkcję.
Pierwsza rzecz, którą będziemy potrzebować
to na pewno będziemy potrzebowali ID naszego użytkownika.
I tutaj z pomocą przychodzi nam komponent, mianowicie Hug.
Funkcja, którą możemy używać po stronie serwera zaimplementowana w kleryków,
mianowicie Out, czyli tutaj możemy sobie zrobić const user id i pobierzemy to z
naszego z naszego Harpera out, który pochodzi właśnie z kleryka.
To tutaj będzie w formacie string albo null.
Czyli tutaj możemy teraz zająć się pobieraniem naszych danych, czyli cache.
I tak najpierw jeżeli nie mamy User ID to chcemy sobie po prostu zrobić.
Tutaj oczywiście mógłbyś sobie zaimplementować rzucenia jakiegoś wyjątku,
że użytkownik nie jest autoryzowany i redirect na np.
na login.
Natomiast w chwili obecnej sobie to zostawimy.
Raczej jak lądujemy na dashboard to jesteśmy zalogowani.
Kwestia tego czy token będzie nieaktywny
już to wtedy pewnie będzie trzeba było obsłużyć jakiś taki przypadek.
Natomiast my skupimy się na HEPA i jeżeli chodzi o dane to const rest
i w tym momencie użyjemy Prisma subskrypcji Find many.
I tutaj musimy powiedzieć w jaki sposób szukamy tych danych w piśmie.
Jeżeli chodzi o selekcję dla kogo chcemy te dane to
zaznaczamy to Work i one raid to musi być nasz user ID.
Czyli szukamy wszystkich subskrypcji
usera o danym ID czyli ID usera, który jest zalogowany w naszej aplikacji.
Jeżeli chodzi o kolejną rzecz, czyli to co
chcemy również pobrać subskrypcje sami to mamy tam relacje.
Subskrypcje mają płatności, także fajnie byłoby to od razu za jednym kole pobrać.
Będziemy potrzebowali tego do naszego komponentu ze statystykami.
Jeżeli przyjrzymy się tej firmie to zobaczymy, że tak naprawdę
będziemy potrzebowali też do statystyk tego wszystkiego.
Tutaj mamy komponent ze statystykami i tutaj te będą potrzebne.
Poza tym w Wordzie pokazujemy tutaj w tym miejscu nasze płatności, dlatego też
będą one potrzebne już przy pierwszym call.
Wróćmy do naszego edytora kodu I tutaj możemy sobie zrobić
payments i ustawić tą flagę na true, że chcemy pobrać też payments.
Jeżeli chodzi o ostatnią rzecz to
widzimy na naszym okapie, że payments są jakby posortowane domyślnie.
Tutaj datami sennymi, czyli od tej daty naj starszej do tej naj naj młodszej.
Czyli wróćmy się do naszego tutaj pobierania naszych danych.
Jeżeli chodzi o sortowanie automatyczne przy pobieraniu danych z firmy to możemy
wykorzystać order by i pole Next payment datę naszej subskrypcji i ustawić to NAS.
W tym momencie dostaniemy dane, które już są poprawnie posortowane.
Natomiast jeżeli chodzi tutaj o obsługę tego wyjątku, jeżeli coś pójdzie nie tak
to możemy sobie zrobić trochę nie fair, bo tutaj możemy sobie zapisać failed tu data.
To na chwilę obecną powinno nam wystarczyć.
Jeżeli chodzi o nasze dane możemy sobie je wylogować console log data
i w tym momencie już powinniśmy widzieć jakiś wynik w w.
Jeżeli odświeżamy naszą stronę, powinniśmy
widzieć jakiś wynik w naszym w naszym tutaj terminalu.
Dlatego widzisz mamy blokowane dane.
Dlaczego i dlaczego ich nie zobaczymy
tutaj, jeżeli sobie wezmę inspektor jeżeli sobie wezmę konsolę tutaj, to jak?
Odświeżę sobie tę stronę?
Zauważ, że nie widzimy tutaj żadnych danych.
Jest jakiś błąd extension, który mam tutaj
zainstalowany w przeglądarce, natomiast nie mamy naszych danych wylogowania.
Dlaczego?
Dashboard na chwilę obecną jest
komponentem po stronie serwera, dlatego jeżeli chodzi o logi to możemy je
odczytywać tylko i wyłącznie tak naprawdę w terminalu.
Na chwilę obecną dobrze jak mamy już te dane.
Od teraz spróbujemy sobie zbudować nasz komponent, który jest odpowiedzialny za
statystyki naszych subskrypcji, naszych płatności.