w Praktyce
10 godz. 44 min · Node.js · Full-stack i Programowanie
Piotr PalarzWeb DeveloperW kursie tym poznasz platformę Node.js od podstaw, aż po bardziej zaawansowane koncepcje. Zaczniemy od omówienia czym jest Node, a także jakie może być zastosowanie tej technologii. Następnie przejdziemy przez proces instalacji i napisanie swojego pierwszego skryptu. Już na samym początku dokładnie omówimy tworzenie własnych modułów, gdyż jest to wiedza niezbędna, by dobrze zrozumieć funkcjonowanie Node. Następnie dowiesz się czym są zdarzenia, jak działa model “publish / subscribe”, a także czym jest “event-driven development”. Chwilę później omówimy pracę z buforami, stream’ami, a także ze standardowym wejściem i wyjściem. Ta wiedza pozwoli Ci zrozumieć jak tworzone aplikacje mogą otrzymywać od użytkownika dane oraz jak je wyświetlają.
Niezwykle ważnym rozdziałem będzie ten, poświęcony pracy z systemem plików. Szczególnie dla dewelopera, pracującego dotychczas z językiem JavaScript wyłącznie w środowisku przeglądarki internetowej. Node pozwala bowiem tworzyć nowe pliki, zapisywać w nich dane oraz odczytywać i usuwać pliki i katalogi. Przy wszystkich tych operacjach, niezwykle ważna jest jednak asynchroniczna natura Node. Dowiesz się jak działa, a także jakie są jej zalety. Na tym etapie nie zabraknie oczywiście praktycznego projektu, którym będzie aplikacja typu CLI (Command Line Interface). Pozwoli nam ona grupowo zmienić nazwy wielu plików, według podanego wzorca.
W kolejnym rozdziale poruszymy fundamentalną dla Node kwestię, mianowicie tworzenie serwerów sieciowych. Zaczniemy od najniższego poziomu, tworząc prosty serwer bazujący na protokole TCP/IP. Wiedza w jaki sposób Node radzi sobie z takim zadaniem, pozwoli później lepiej zrozumieć wyższe warstwy, takie jak np. HTTP czy WebSockets. Chwilę później stworzymy swój pierwszy serwer HTTP, do którego będzie można wysyłać zapytania wprost z przeglądarki internetowej. Omówimy również jak w Node wykorzystać bezpieczne szyfrowanie HTTPS.Na tym etapie będziesz już miał solidną wiedzę jak pracować z Node, jednak zanim przejdziemy dalej, zatrzymamy się, by omówić jak dokładnie działa Node.js, a także jak ta platforma została zbudowana. Dwie dość obszerne lekcje, będą być może jednymi z najważniejszych w tym kursie. Dowiesz się w nich czym jest, a także jak działa jednowątkowa pętla zdarzeń, czym jest proces i wątek, a także zobaczysz kod źródłowy Node.js i wszystkie bloki budulcowe, z jakich Node się składa. To naszym zdaniem niezwykle ważny temat, często jednak pomijany w wielu materiałach. Dzięki dogłębnemu zrozumieniu jednowątkowej natury języka JavaScript i asynchroniczności Node, będziesz mógł tworzyć dużo lepsze aplikacje.
Node.js posiada kilkanaście wbudowanych modułów, z których w dowolnej chwili można skorzystać. Wszystkie jednak dają nam dużą, niskopoziomową kontrolę, ale czasami sporo kodu należy napisać, by zrealizować jakieś zadanie. Jest to jednak świadomy wybór twórców Node, gdyż całą resztę świetnych rozwiązań, dopisuje nieustannie ogólnoświatowa społeczność deweloperów. Zdecydowana większość z modułów ląduje w rejestrze npm. Jest to genialny package manager, który pozwoli nam wyszukiwać, pobierać i aktualizować niezliczoną ilość modułów. Dowiesz się zatem jak korzystać z npm, a chwilę później zaczniemy wykorzystywać zgromadzone tam moduły w dalszej pracy.Jednym z najpopularniejszych modułów jest express.js, który pozwala w bardzo prosty sposób tworzyć serwery HTTP. Grzechem byłoby zatem z niego nie skorzystać. Dowiesz się wszystkiego co niezbędne, by zacząć tworzyć własne aplikacje bazujące na protokole HTTP z użyciem express.js, a także kilku dodatków do tego systemu. Zobaczysz jak routować zapytania, jak korzystać z middleware czy serwować statyczne pliki. Następnie omówimy współpracę z bazą danych MongoDB i z jej wykorzystaniem stworzymy API typu REST. Stworzona aplikacja pozwoli odczytywać dane z bazy i przesyłać je do klienta w formacie JSON, a także dodawać nowe dane, aktualizować i usuwać je. Wszystko to zgodnie z dobrymi praktykami pracy z REST.
Chwilę później czeka Cię kolejny praktyczny projekt - skracacz linków. Stworzymy wspólnie aplikację, która pozwoli skrócić dowolny adres URL do krótkiej formy. Oczywiście będzie działać również w drugą stronę! Kiedy przejdziemy pod skrócony adres, przekieruje nas do odpowiedniej witryny. Node.js to platforma wręcz stworzona do tworzenia aplikacji typu real-time, dlatego w kolejnym rodziale podejmiemy temat technologii WebSockets. Dowiesz się jakie są jej zalety, a także jak pracować z nią po stronie serwera i klienta. Tutaj czeka nas kolejny praktyczny, niezwykle ciekawy projekt. Wykonamy bowiem czat grupowy. Aplikacja ta pozwoli dowolnej ilości użytkowników podłączyć się do czatu podając swój nick, a następnie wysyłać widoczne dla wszystkich wiadomości. Zaimplementujemy nawet takie rozwiązania jak wyświetlanie statusów o dołączeniu kogoś do czatu, a także o jego opuszczeniu.W przedostatnim rodziale tego kursu podejmiemy tematykę dobrych praktyk pracy z Node.js. Na początku omówimy najważniejsze konstrukcje nowej specyfikacji EcmaScript 2015, które są znakomicie wspierane w Node. Chwilę później omówimy jak korzystanie z Promises uprości, a także ulepszy nasz kod. Wśród dobrych praktyk nie zabraknie również informacji o debugowaniu aplikacji. Zobaczysz sprawdzone sposoby, by znaleźć błędy lub lepiej, krok po kroku, zrozumieć jak działa napisany wcześniej kod. Dowiesz się również jak pracować z błędami, by Twoje aplikacje działały w sposób przewidywalny.
Ostatni rozdział w całości został poświęcony temu, co zwykle jest pomijane w innych materiałach, mianowicie wdrażaniu aplikacji do produkcji. Przez cały ten kurs pracować będziemy lokalnie, lecz kiedy aplikacje są już gotowe, wypadałoby udostępnić je światu. Wdrażanie aplikacji napisanych z użyciem Node.js nie jest jednak tak oczywiste, jak np. wgrywanie WordPress’a u wybranego hostingodawcy. Ty będziesz miał jednak możliwość zobaczyć, jak wdrożyć napisany przez nas grupowy czat na platformie Heroku. Jest to bardzo popularny serwis działający jako PaaS (Platform as a Service). Za darmo będziesz mógł w ciągu kilku chwil uruchomić swoją aplikację.Zobaczysz o co należy zadbać, by wszystko poszło gładko. Serwisy typu PaaS dbają o bardzo wiele aspektów wdrażania i serwowania naszych aplikacji, takich jak bezpieczeństwo oraz nieustanną dostępność. Mają jednak pewne ograniczenia. Z tego powodu, dowiesz się również jak wdrożyć swoją aplikację na serwerze wirtualnym VPS z systemem Ubuntu Server. Takie rozwiązanie daje nam całkowitą kontrolę, ale także obarczone jest większą odpowiedzialnością. Zaczniemy od instalacji na serwerze platformy Node.js, systemu kontroli wersji GIT, a także innych niezbędnych modułów
Następnie zobaczysz jak skonfigurować swoje lokalne środowisko tak, by za pomocą GIT’a wysyłać kod do zdalnego serwera, a potem jednym poleceniem wdrażać go do produkcji. Dowiesz się również jak jednocześnie serwować wersję produkcyjną oraz developmencką. W rodziale tym poruszymy również inne kwestie, takie jak procesy potomne czy tworzenie klastrów. Dzięki tej wiedzy, będziesz mógł maksymalnie wykorzystać dostępne zasoby serwera. Na sam koniec tego kursu rzucimy okiem również na inne, nie przedstawione wcześniej zastosowania Node, a także nakreślimy dalszą drogę nauki w tym zakresie.
Kurs ten jest dla wszystkich osób, które dobrze czują się w technologiach frontendowych, tj. HTML, CSS i JavaScript, a teraz chcą rozpocząć swoją przygodę z back-endem. Im zatem lepiej znasz język JavaScript, tym więcej wyciśniesz z Node, natomiast nie jest wymagana bardzo zaawansowana wiedza z zakresu tego języka.
Cześć! Z tej strony Piotr Palarz z serwisu eduweb.pl.
Mam dla ciebie 10-godzinny materiał poświęcony jednej z najgorętszych technologii ostatnich lat, jaką
jest Node.js.
Jest to platforma, która pozwala w języku JavaScript tworzyć zaplecza serwerowe.
Dlatego jeżeli do tej pory tworzyłeś strony i aplikacje internetowe, wykorzystując język HTML, CSS i JavaScript
i ten ostatni znasz na przynajmniej średnim poziomie, to teraz jest najlepszy czas na to, aby wskoczyć również
w świat back-endu i spróbować swoich sił z Node.js.
Być może również będziesz mógł zmienić swój tytuł z front-end developera na full stack web developera.
Zapewniam cię, że nawet jeżeli jest to twój pierwszy krok w kierunku zostania backendowcem, to będzie to krok
milowy.
Zatem jeżeli jesteś ciekaw, to zerknijmy, co znajdziesz
w tym kursie. Na początku omówimy, czym jest Node, a także pokażę ci, w jaki sposób tę platformę zainstalować na
wszystkich najpopularniejszych systemach operacyjnych - tak abyśmy mogli lokalnie zacząć już pracować.
Następnie dowiesz się, w jaki sposób dzielić kod na moduły.
Czym są bufory, streamy
czy zdarzenia, a chwilę później będziemy już pracować z systemem plików w Node.js.
W odróżnieniu od języka JavaScript, który działa w środowisku przeglądarki internetowej,
w przypadku Node będziemy mieli pełną kontrolę nad plikami w systemie, na którym jest on wykonywany.
Oznacza to tylko tyle, że będziemy mogli tworzyć nowe pliki i katalogi, zapisywać do nich dane, modyfikować
te pliki czy wreszcie je usuwać.
Wszystko to pokażę ci w jednym z rozdziałów tego kursu.
Natomiast pod koniec tego rozdziału wykonamy również praktyczną aplikację typu CLI, czyli Command Line Interface,
i ona będzie pozwalała na grupową zmianę nazw plików w danym katalogu. W jednym z kolejnych rozdziałów
omówimy fundamentalną dla Node kwestię. mianowicie tworzenie serwerów sieciowych.
Na początek pokaże ci, jak na najniższym poziomie możemy utworzyć serwer bazujący na protokole TCP/IP i
jak możemy się z nim komunikować.
Natomiast chwilę później pokażę ci, jak już na tej wyższej warstwie utworzyć swój pierwszy serwer HTTP.
Zobaczysz, jak możemy to zrobić w Node bez użycia żadnych dodatkowych modułów.
Zobaczysz również, że mamy wtedy bardzo dużą niskopoziomową kontrolę nad wszystkim, ale również sporo
kodu musimy napisać, abyśmy mogli stworzyć trochę bardziej zaawansowane aplikacje.
Natomiast ten problem rozwiążemy później bez trudu z użyciem odpowiednich modułów.
Na tym etapie w kursie będziesz miał już solidne podstawy tego, jak pracować z Node.
Dlatego zatrzymamy się na chwilę i w dwóch dość obszernych lekcjach wytłumaczę ci, jak dokładnie pod
spodem działa Node i z jakich bloków budulcowych jest ta platforma stworzona.
Na początek omówimy bardzo ważną koncepcję, jaką jest tak zwana jednowątkowa pętla zdarzeń w Node.
Zobaczysz, jakie są konsekwencje tego, że JavaScript jest wykonywany wyłącznie w jednym wątku. Omówimy
najpierw, czym jest proces i wątek, abyś to wszystko mógł lepiej zrozumieć.
Natomiast w jednej z kolejnych lekcji zajrzymy do kodu źródłowego Node.js,
abyśmy mogli zobaczyć, z jakich bloków budulcowych to wszystko zostało stworzone i zobaczysz, w którym
dokładnie miejscu przenikają się dwa światy języka JavaScript, w którym my będziemy pisać, a także języka
C++, w którym zostały zaimplementowane API Npde.js. Uzbrojeni już w solidną dawkę wiedzy przejdziemy dalej i
pokażę ci, w jaki sposób możesz rozszerzać wbudowane funkcjonalności Node za pomocą modułów. Zobaczysz, gdzie
je znaleźć, jak je instalować, aktualizować czy usunąć, a także jak korzystać z nich we własnych aplikacjach.
Chwilę później wykorzystamy jeden z najpopularniejszych modułów dostępnych dla Node, jakim jest
Express.js.
Z jego pomocą w krótkim czasie stworzymy aplikację bazującą na protokole HTTP i dowiesz się, jak serwować
różne zasoby dla odpowiednich adresów URL, jak dynamizować parametry w zapytaniach, a także jak radzić sobie
z serwowaniem danych typu JSON.
W tym celu stworzymy własne API typu REST, gdzie dokładnie wytłumaczę ci, na czym sprawa polega i zepniemy
je później również z nowoczesną bazą danych MongoDB, by przesyłane informacje mogły być zapisywane na
serwerze. W tym rozdziale wykonamy również praktyczny projekt skracacza linków.
Będzie to aplikacja, która pozwoli nam podać długi adres URL, wygeneruje nam i zapisze w bazie danych
krótki adres.
Kiedy przejdziemy pod ten skrócony adres URL, to zostaniemy przekierowani do oryginalnej strony pod
tym pierwotnym adresem.
Node.js jest to, jak się przekonasz, platforma wręcz stworzona do tworzenia aplikacji typu real time.
Dlatego w jednym z rozdziałów poruszamy kwestię technologii WebSockets.
Zobaczysz, jak tworzyć między klientem a serwerem
kanał dwukierunkowej komunikacji i w tym przypadku również stworzymy sobie praktyczny projekt, a będzie to
grupowy czat, a zatem aplikacja, która pozwoli podłączyć się do serwera niezliczonej liczbie klientów.
Będziemy mogli podać swój nick, podłączyć się i komunikować się z innymi w grupowym czacie.
Na tym przykładzie zobaczysz, jaka jest przewaga Node.js nad innymi technologiami tego typu. W przedostatnim
rozdziale tego kursu poruszymy tematykę dobrych praktyk pracy z Node i na początek pokażę ci, jak Node może
współpracować z najnowszą edycją standardu ECMAScript 2015, zwaną również ES6.
Następnie dowiesz się, czym są oraz jak działają tzw. Promises, które po raz kolejny ulepszą i uproszczą
nasz kod.
Nie zabraknie również informacji o tym, jak debugować swoje aplikacje czy pracować z obsługą błędów. Ostatni
rozdział tego kursu został w całości poświęcony temu, co jest niestety często pomijane w innych publikacjach
tego typu, a mianowicie wdrażaniu do produkcji.
Będę chciał ci pokazać, jak wcześniej przygotowaną aplikację czatu wdrożyć najpierw do serwisu Heroku
a jest to serwis, który określa się mianem PaaS, czyli platform as a service. Zobaczysz, jakie są tego plusy
oraz minusy. Powiem ci również, na co zwrócić uwagę, aby twoja aplikacja mogła się w takim serwisie uruchomić.
Natomiast w jednej z kolejnych lekcji pokażę ci, jak aplikację czatu uruchomić na własnym serwerze wirtualnym z
systemem Ubuntu Server. Zobaczysz, że jest to zadanie nieco trudniejsze i obarczone większą odpowiedzialnością,
dlatego że zarządzamy całym serwerem.
Natomiast jeżeli chodzi o sam proces wdrażania takiej aplikacji, to zrobimy to w sposób w pełni zautomatyzowany.
Zobaczysz, jak za pomocą Gita możemy wysłać kod na zdalny serwer, a następnie jak na naszej lokalnej maszynie
wykonać jedno polecenie, które uruchomi nam na zdalnym serwerze albo produkcyjną wersję aplikacji, albo
wersję development. Pokażę ci również takie ważne aspekty jak zadbanie o to, aby aplikacja była automatycznie
uruchamiana po restarcie serwera. Na koniec tego kursu rzucimy okiem również na inne zastosowania Node,
a także nakreślę ci drogę do dalszego rozwoju. Pozostało zatem odpowiedzieć sobie na pytanie, dla
kogo jest ten kurs?
Kurs ten jest dla wszystkich osób, które znają już język HTML, CSS i JavaScript i chciałyby spróbować swoich
sił w back-end.
Natomiast jeśli jeszcze brakuje ci wystarczającej wiedzy z zakresu języka JavaScript, to polecam ci
zrobienie najpierw dwóch wcześniejszych kursów, mianowicie: JavaScript od podstaw i JavaScript
w praktyce. Te dwa kursy będą dla ciebie idealnym wstępem do języka JavaScript, bo poznasz tam język
od podstaw aż po bardziej zaawansowane konstrukcje.
I to wszystko w zupełności wystarczy, aby zacząć swoją przygodę z Node.
Zatem jeżeli tak jak ja nie możesz się już doczekać, aż zaczniemy wspólnie przerabiać ten kurs, to zapraszam
cię już do pierwszych jego lekcji. Do usłyszenia!