
Node.js to środowisko uruchomieniowe umożliwiające wykonywanie kodu JavaScript poza przeglądarką internetową. Dzięki niemu język kojarzony przede wszystkim z interaktywnymi stronami WWW może być wykorzystywany między innymi do tworzenia serwerów, aplikacji sieciowych, interfejsów API oraz narzędzi uruchamianych z poziomu terminala.
Silnik V8 i backend w języku JavaScript
Jak działa Node.js? Środowisko wykorzystuje silnik JavaScript V8, który wykonuje kod programu bez konieczności uruchamiania go w przeglądarce. Programista może przygotować plik z kodem JavaScript, a następnie uruchomić go bezpośrednio w systemie operacyjnym. Node.js udostępnia przy tym własne interfejsy pozwalające między innymi pracować z plikami, obsługiwać połączenia sieciowe i komunikować się z innymi procesami. W ten sposób JavaScript może realizować zadania, które w klasycznym zastosowaniu przeglądarkowym nie są dla niego bezpośrednio dostępne.
Do czego służy Node.js? Jednym z najważniejszych zastosowań jest programowanie backendu, czyli części aplikacji działającej po stronie serwera. Node.js może odbierać żądania wysyłane przez przeglądarkę lub aplikację, przetwarzać dane i zwracać odpowiedź. Pozwala na przykład przygotować serwer obsługujący logowanie użytkowników, pobieranie informacji z bazy danych czy REST API. Z tego powodu z Node.js powiązane są określenia takie jak backend, server-side JavaScript, JavaScript runtime, serwer Node.js oraz środowisko uruchomieniowe JavaScript.
Model asynchroniczny, pętla zdarzeń i menedżer npm
Ważną cechą Node.js jest model działania oparty w dużej mierze na operacjach asynchronicznych i nieblokującym wejściu-wyjściu. Co oznacza non-blocking I/O? Program nie musi zatrzymywać wykonywania pozostałych zadań podczas oczekiwania na zakończenie określonej operacji, na przykład odczytu pliku lub odpowiedzi z sieci. Mechanizm pętli zdarzeń, czyli event loop, pozwala obsługiwać kolejne zdarzenia i wykonywać odpowiednie funkcje po zakończeniu oczekiwanych operacji. Jest to szczególnie użyteczne w aplikacjach obsługujących wiele połączeń sieciowych.
Z Node.js silnie związany jest również ekosystem pakietów. Do czego służy npm? Node Package Manager pozwala instalować i zarządzać gotowymi bibliotekami oraz zależnościami wykorzystywanymi przez projekt. Programista może dzięki temu korzystać z istniejących modułów zamiast samodzielnie implementować każdą funkcję. Informacje o projekcie i jego zależnościach są zazwyczaj zapisywane między innymi w pliku package.json, który stanowi jeden z charakterystycznych elementów wielu projektów opartych na Node.js.
Charakterystyka środowiska i wszechstronność zastosowań
Czy Node.js jest językiem programowania? Nie. Jest środowiskiem uruchomieniowym, natomiast kod wykonywany jest przede wszystkim w JavaScript. Nie należy również utożsamiać Node.js z frameworkiem. Frameworki i biblioteki mogą działać w tym środowisku i dostarczać dodatkowych narzędzi do budowania aplikacji. Sam Node.js zapewnia podstawową platformę pozwalającą wykonywać JavaScript poza przeglądarką oraz korzystać z funkcji systemowych i sieciowych.
Node.js znajduje zastosowanie nie tylko przy budowie klasycznych serwerów WWW. Może służyć do tworzenia aplikacji czasu rzeczywistego, narzędzi CLI, systemów komunikacyjnych, usług sieciowych czy zaplecza aplikacji mobilnych i internetowych. Powiązane z nim pojęcia obejmują JavaScript, V8, npm, event loop, backend, API, server-side oraz runtime environment. Node.js rozszerza więc praktyczne możliwości JavaScript i pozwala wykorzystywać ten język w wielu obszarach wykraczających poza kod wykonywany bezpośrednio na stronie internetowej.