Co to jest Node.js, jak działa i do czego go używać?
- Paul Janui
- Read Time: 8 mins
Node.js to środowisko uruchomieniowe JavaScript, które umożliwia budowanie aplikacji po stronie serwera lub aplikacji desktopowych.
W niniejszym artykule przyjrzymy się bliżej Node.js, jego funkcjonalności oraz sposobom jego wykorzystania.
JavaScript i Node.js
JavaScript istnieje od 1995 roku i od tego czasu stał się dominującym językiem w tworzeniu stron internetowych. Przez większość swojego życia JavaScript był używany głównie do skryptów po stronie klienta w tagach <script>
uruchamianych w przeglądarkach internetowych. Oznaczało to, że programiści często musieli pracować z różnymi językami i frameworkami pomiędzy front-endem (stroną klienta) a backendem (stroną serwera) aplikacji internetowych.
Choć istniały inne projekty mające na celu wprowadzenie JavaScript do aplikacji po stronie serwera, prawdziwy przełom nastąpił w 2009 roku wraz z wprowadzeniem Node.js. Node pozwala programistom pisać kod JavaScript, który działa bezpośrednio w procesie komputera, zamiast w przeglądarce. Dzięki temu można używać Node do tworzenia aplikacji serwerowych z dostępem do systemu operacyjnego, systemu plików i innych elementów potrzebnych do budowy w pełni funkcjonalnych aplikacji.
Node.js jest napisany w C, C++ i JavaScript, a jego podstawą jest silnik V8 JavaScript, który napędza również przeglądarkę Google Chrome. W miarę jak V8 wspiera nowe funkcje JavaScript, są one włączane do Node.js.
Specyficzna funkcjonalność Node.js
Globalne obiekty
Node dostarcza dostęp do kilku ważnych globalnych obiektów używanych w plikach programów Node. Pisząc plik, który będzie działał w środowisku Node, te zmienne będą dostępne w globalnym zakresie pliku.
module
to obiekt odnoszący się do funkcjonalności, która będzie eksportowana z pliku. W Node każdy plik jest traktowany jako moduł.require()
to funkcja używana do importowania modułów z innych plików lub pakietów Node.process
to obiekt odnoszący się do rzeczywistego procesu komputera, który uruchamia program Node i pozwala na dostęp do argumentów wiersza poleceń i wielu innych.
Moduły
Node posiada wiele wbudowanych modułów, które pomagają w interakcjach z wierszem poleceń, systemem plików komputera i Internetem. Obejmują one:
- HTTP i HTTPS do tworzenia serwerów internetowych.
- File System, OS i Path do interakcji z systemem plików, systemem operacyjnym oraz ścieżkami plików/katalogów.
Pełna dokumentacja Node dostępna jest na stronie internetowej Node.js.
Dlaczego Node.js?
Na stronie głównej Node.js można przeczytać, że Node "używa modelu I/O opartego na zdarzeniach, bez blokowania." W praktyce oznacza to, że Node jest dobrze przystosowany do obsługi asynchronicznego kodu JavaScript, umożliwiając wykonywanie wielu asynchronicznych działań, takich jak odczytywanie i zapisywanie w systemie plików, obsługa połączeń z serwerami baz danych czy obsługa żądań jako serwer WWW.
Aby obsługiwać kod asynchroniczny, Node używa systemu opartego na wywołaniach zwrotnych (callbacks). Funkcje i metody Node, które wykonują jakąś asynchroniczną czynność, przyjmują funkcję zwrotną. Ta funkcja jest wywoływana, gdy operacja asynchroniczna zostanie zakończona. Z konwencji, pierwszym argumentem tej funkcji zwrotnej jest miejsce na błąd. Jeśli wystąpi błąd w operacji asynchronicznej (np. próba odczytania nieistniejącego pliku), argument błędu będzie obiektem Error, ale będzie null, jeśli nie wystąpi żaden błąd.
Jak używać Node.js
Aby rozpocząć, pobierz i zainstaluj Node.js dla swojego systemu operacyjnego. Po zainstalowaniu, aby uruchomić pliki JS w Node, użyj polecenia node
wraz ze ścieżką do pliku.
Na przykład, jeśli mamy zapisany plik script.js z prostą instrukcją logowania tekstu do konsoli, uruchomienie polecenia node script.js
w tym samym folderze co plik skryptu spowoduje uruchomienie Node, wykonanie instrukcji logowania i zakończenie działania.
Node jako REPL
Node może być również używany jako REPL (Read-Evaluate-Print-Loop) w oknie terminala. Ta funkcjonalność pozwala na wykonywanie poleceń JavaScript bezpośrednio z wiersza poleceń.
Po zainstalowaniu Node, można uruchomić REPL, wpisując polecenie node
w terminalu i naciskając Enter. Teraz jesteś w interaktywnym środowisku JavaScript i możesz uruchamiać dowolny poprawny kod JavaScript, np. prostą operację matematyczną. Po wykonaniu polecenia, Node zawsze wydrukuje wynik tej operacji.
W trybie REPL można także tworzyć funkcje. Deklaracja funkcji będzie wyświetlała się linia po linii, a po jej zamknięciu będzie można ją wywołać. Wynik działania funkcji zostanie wyświetlony w konsoli.
Aby wyjść z REPL Node, użyj polecenia .exit
lub naciśnij ctrl + c
dwa razy.
Zarządzanie pakietami
Pakiety Node są wygodnym sposobem na dzielenie się modułami między programistami Node. Domyślnym menedżerem pakietów dla Node jest npm
, który jest dołączany do instalacji Node. npm
pozwala na dostęp do setek tysięcy otwartych pakietów.
Oprócz npm
, yarn
zyskuje popularność jako inny menedżer pakietów JavaScript.
Wersje Node
Node w swoich głównych wydaniach dąży do wspierania najnowszych funkcji JavaScript, w tym ES6/ES2015 i nowszych, bez konieczności transpilingu.
Zarządzanie wersjami
Jak przy każdej większej wersji oprogramowania, główne wydania Node (8.x, 7.x itp.) czasami wprowadzają zmiany, które mogą być niekompatybilne z aplikacjami zbudowanymi w starszych wersjach. Menedżer wersji może być używany do przełączania się między różnymi wersjami Node na jednym komputerze.
Dostępne są dwa menedżery wersji: nvm
(Node Version Manager) i n
. n
można łatwo zainstalować jako pakiet npm.
Node.js to potężne narzędzie, które zrewolucjonizowało sposób, w jaki programiści piszą kod JavaScript dla aplikacji serwerowych. Dzięki swojej wszechstronności i dużej społeczności wsparcia, jest to doskonały wybór dla każdego, kto chce tworzyć nowoczesne, skalowalne aplikacje internetowe.
Podsumowanie
Node.js to środowisko uruchomieniowe dla JavaScript, które umożliwia tworzenie aplikacji serwerowych i desktopowych. Dzięki Node.js, programiści mogą pisać kod JavaScript, który działa bezpośrednio w procesie komputera, a nie tylko w przeglądarce. Node.js jest zbudowany na silniku V8 JavaScript i jest napisany w C, C++ i JavaScript. Umożliwia to korzystanie z najnowszych funkcji JavaScript.
Główne cechy Node.js:
- Globalne obiekty: Dostęp do ważnych globalnych obiektów takich jak
module
,require()
iprocess
. - Wbudowane moduły: Bogaty zestaw modułów do interakcji z systemem plików, systemem operacyjnym i tworzeniem serwerów internetowych.
- Asynchroniczność: Node.js wykorzystuje model I/O oparty na zdarzeniach, co sprawia, że jest idealny do obsługi asynchronicznego kodu JavaScript.
- REPL: Interaktywne środowisko do wykonywania poleceń JavaScript bezpośrednio z wiersza poleceń.
- Zarządzanie pakietami:
npm
jako domyślny menedżer pakietów, umożliwiający dostęp do tysięcy otwartych pakietów. - Wsparcie dla najnowszych funkcji JavaScript: Regularne aktualizacje, które wspierają najnowsze standardy JavaScript.
Node.js oferuje potężne narzędzie do budowania skalowalnych i nowoczesnych aplikacji internetowych, które zrewolucjonizowało sposób, w jaki programiści piszą kod JavaScript dla serwerów. Dzięki swojej wszechstronności i dużej społeczności wsparcia, Node.js jest doskonałym wyborem dla każdego, kto chce tworzyć efektywne i nowoczesne aplikacje internetowe.