Co to jest Node.js, jak działa i do czego go używać?

Co to jest Node.js, jak działa i do czego go używać?

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() i process.
  • 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.