Node.js (64-bit)
Wersja | Node.js 16.11.0 (64-bit) LATEST |
Wymagania | Windows XP64 / Windows Vista 64 / Windows 7 64 / Windows 8 64 / Windows 10 64 |
Deweloper | Node.js Foundation |
Strona do pobrania | Node.js (64-bit) |
Jako asynchroniczny, sterowany zdarzeniami runtime JavaScript, Node został zaprojektowany do budowania skalowalnych aplikacji sieciowych. W poniższym przykładzie ""hello world"", wiele połączeń może być obsługiwanych jednocześnie. Przy każdym połączeniu wywoływane jest wywołanie zwrotne, ale jeśli nie ma pracy do wykonania, Węzeł 64-bitowy usypia.
Jest to kontrast do dzisiejszego, bardziej powszechnego modelu współbieżności, w którym wykorzystywane są wątki systemu operacyjnego. Sieć oparta na wątkach jest stosunkowo nieefektywna i bardzo trudna w użyciu. Ponadto, użytkownicy Nodejs'a są wolni od obaw o dead-locking procesu, ponieważ nie ma żadnych zamków. Prawie żadna funkcja w aplikacji nie wykonuje bezpośrednio operacji I/O, więc proces nigdy się nie blokuje. Ponieważ nic się nie blokuje, tworzenie skalowalnych systemów w Node jest bardzo rozsądne.
Node.js jest podobny w konstrukcji do systemów takich jak Ruby's Event Machine czy Python's Twisted i ma na nie wpływ. Wykorzystuje model zdarzeń nieco dalej. Przedstawia pętlę zdarzeń jako konstrukcję runtime zamiast biblioteki. W innych systemach, zawsze istnieje wywołanie blokujące, aby rozpocząć pętlę zdarzeń. Zazwyczaj zachowanie jest definiowane poprzez callbacki na początku skryptu, a na końcu uruchamia serwer poprzez blokujące wywołanie jak EventMachine::run(). W Node js, nie ma takiego wywołania start-the-event-loop. Po prostu wchodzi do pętli zdarzeń po wykonaniu skryptu wejściowego. Narzędzie opuszcza pętlę zdarzeń, gdy nie ma już żadnych wywołań zwrotnych do wykonania. Takie zachowanie jest jak przeglądarkowy JavaScript — pętla zdarzeń jest ukryta przed użytkownikiem.
HTTP jest obywatelem pierwszej klasy w Nodejs, zaprojektowanym z myślą o strumieniowaniu i niskich opóźnieniach. To sprawia, że Node js dobrze nadaje się na podstawę biblioteki internetowej lub frameworka.
Tylko dlatego, że Nodejs został zaprojektowany bez wątków, nie oznacza, że nie można wykorzystać wielu rdzeni w swoim środowisku. Procesy potomne mogą być wywoływane za pomocą child_process.fork() API i są zaprojektowane tak, aby łatwo było się z nimi komunikować. Na bazie tego samego interfejsu zbudowany jest moduł klastra, który pozwala na współdzielenie gniazdek między procesami, aby umożliwić równoważenie obciążenia na rdzeniach.
Dostępne również: Pobierz Node.js dla Mac