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.

Node.js
Więcej podobnych pojęć

Właściciel serwisu: TERG S.A. Ul. Za Dworcem 1D, 77-400 Złotów; Spółka wpisana do Krajowego Rejestru Sądowego w Sądzie Rejonowym w Poznań-Nowe Miasto i Wilda w Poznaniu, IX Wydział Gospodarczy Krajowego Rejestru Sądowego pod nr KRS 0000427063, Kapitał zakładowy: 41 687 500,00 zł; NIP 767-10-04-218, REGON 570217011; numer rejestrowy BDO: 000135672. Sprzedaż dla firm (B2B): dlabiznesu@me.pl INFOLINIA: 756 756 756