Węzeł.JS (Node.JS)

Node.js to otwarte, wieloplatformowe środowisko wykonawcze JavaScript działające na serwerach. Od czasu jej wydania w 2009 roku, ta platforma stała się niezwykle popularna i odgrywa obecnie bardzo ważną rolę w dziedzinie tworzenia stron internetowych.
Pełny artykuł na Node.JS ...

Pokaż filtr
Hosting Filters
A2 Themes & Host Me Filter

System operacyjny

Miejsca na dysku

Pamięć RAM

Typ dysku

Rdzenie procesora

Sortować

Wynik - 0
RedSwitches Logo
RedSwitches

RedSwitches

Pearl
$6.94 /Miesięczny


Lokalizacje serwerów


RedSwitches Servers in NetherlandsHolandia RedSwitches Servers in UnionStany Zjednoczone RedSwitches Servers in MelbourneAustralia RedSwitches Servers in MumbaiIndie RedSwitches Servers in GermanyNiemcy
Porównać
Wynik - 0
Hostarina Logo
Hostarina

Hostarina

Personal
$2.92 /Miesięczny


Lokalizacje serwerów


Hostarina Servers in UnionStany Zjednoczone Hostarina Servers in RawalpindiPakistan Hostarina Servers in MunichNiemcy
Porównać
Wynik - 0
Net9 Oy Logo
Net9 Oy

Net9 Oy

Small
$1.13 /Miesięczny


Lokalizacje serwerów


Net9 Oy Servers in StockholmSzwecja Net9 Oy Servers in HelsinkiFinlandia Net9 Oy Servers in ParisFrancja
Porównać
Wynik - 0
Heroku Logo
Heroku

Heroku

Hobby
$7 /Miesięczny


Lokalizacje serwerów


Heroku Servers in United StatesStany Zjednoczone
Porównać
Wynik - 0
Awareindia.net Logo
Awareindia.net

Awareindia.net

Linux Hosting Plan G
$5.83 /Miesięczny

Porównać
Wynik - 0
Chemi Cloud Logo
Chemi Cloud

Chemi Cloud

Ionic
$2.95 /Miesięczny


Lokalizacje serwerów


Chemi Cloud Servers in BangaloreIndie Chemi Cloud Servers in New YorkStany Zjednoczone Chemi Cloud Servers in BucharestRumunia Chemi Cloud Servers in LondonZjednoczone Królestwo Chemi Cloud Servers in AmsterdamHolandia Chemi Cloud Servers in TorontoKanada Chemi Cloud Servers in SydneyAustralia
Porównać
Wynik - 0
Oudel Logo
Oudel

Oudel

cPanel Hosting 1
$5.95 /Miesięczny


Lokalizacje serwerów


Oudel Servers in UnionStany Zjednoczone
Porównać

 

Node.js

 

 

Node.js to otwarte, wieloplatformowe środowisko wykonawcze JavaScript działające na serwerach. Od czasu jej wydania w 2009 roku, ta platforma stała się niezwykle popularna i odgrywa obecnie bardzo ważną rolę w dziedzinie tworzenia stron internetowych. Jeśli weźmiemy pod uwagę liczbę gwiazdek, które projekt zebrał na GitHub, jako wskaźnik popularności, to Node.js, który ma ponad 50 000 gwiazdek, jest bardzo, bardzo popularnym projektem.

 

Platforma Node.js jest oparta na silniku JavaScript V8 firmy Google, który jest używany w przeglądarce Google Chrome. Ta platforma jest używana głównie do tworzenia serwerów internetowych, ale jej zakres nie ogranicza się do tego.

 

Spójrzmy na główne cechy Node.js.

 

Prędkość

 

Jedną z głównych atrakcji Node.js jest szybkość. Kod JavaScript wykonywany w Node.js może być dwukrotnie szybszy niż kod napisany w językach skompilowanych, takich jak C lub Java, oraz o rząd wielkości szybciej niż języki interpretowane, takie jak Python czy Ruby. Powodem tego jest nieblokująca architektura platformy, a konkretne wyniki zależą od użytych testów porównawczych, ale ogólnie Node.js jest bardzo szybką platformą.

 

Prostota

 

Platforma Node.js jest łatwa do nauczenia i używania. W rzeczywistości jest to wręcz bardzo proste, zwłaszcza w porównaniu z niektórymi innymi platformami serwerowymi.

 

JavaScript

 

JavaScript jest wykonywany w środowisku Node.js. Oznacza to, że miliony programistów front-end, którzy już używają JavaScript w przeglądarce, mogą pisać zarówno kod po stronie serwera, jak i po stronie klienta w tym samym języku programowania bez konieczności uczenia się zupełnie nowego narzędzia, aby przejść do programowania po stronie serwera.

 

Przeglądarka i serwer używają tych samych pojęć językowych. Ponadto Node.js może szybko przejść na nowe standardy ECMAScript, ponieważ są one wdrażane na platformie.

 

Nie trzeba czekać, aż użytkownicy odświeżą swoje przeglądarki, ponieważ Node.js jest środowiskiem po stronie serwera, które jest całkowicie kontrolowane przez programistę. W rezultacie nowe funkcje językowe stają się dostępne po zainstalowaniu obsługującej wersji Node.js.

 

Silnik V8

 

Sercem Node.js, między innymi, jest silnik JavaScript V8 typu open source firmy Google, który jest używany w Google Chrome i innych przeglądarkach. Oznacza to, że Node.js korzysta z tysięcy inżynierów, którzy sprawili, że środowisko wykonawcze Chrome JavaScript jest niewiarygodnie szybkie i kontynuują prace nad ulepszeniem V8.

 

Asynchronia

 

W tradycyjnych językach programowania (C, Java, Python, PHP) wszystkie instrukcje są domyślnie blokowane, chyba że programista wyraźnie zadba o asynchroniczne wykonywanie kodu. W efekcie, jeśli np. W takim środowisku wykonasz żądanie sieciowe w celu pobrania jakiegoś kodu JSON, wykonanie strumienia, z którego to żądanie jest wykonane, zostanie zawieszone do czasu otrzymania i przetworzenia odpowiedzi.

 

JavaScript znacznie ułatwia pisanie asynchronicznego i nieblokującego kodu przy użyciu pojedynczego wątku, wywołań zwrotnych i opartego na zdarzeniach podejścia do programowania. Za każdym razem, gdy musimy wykonać ciężką operację, przekazujemy wywołanie zwrotne do odpowiedniego mechanizmu, który zostanie wywołany natychmiast po zakończeniu tej operacji. Dzięki temu nie trzeba czekać na wyniki takich operacji, aby program mógł dalej działać.

 

Podobny mechanizm powstał w przeglądarkach. Nie możemy sobie pozwolić na czekanie, powiedzmy, na plikAJAXżądanie zakończenia bez możliwości reagowania na działania użytkownika, takie jak kliknięcia przycisków. Aby ułatwić użytkownikom pracę ze stronami internetowymi, wszystko, zarówno pobieranie danych z sieci, jak i przetwarzanie kliknięć przycisków, musi odbywać się jednocześnie, w czasie rzeczywistym.

 

Jeśli kiedykolwiek utworzyłeś moduł obsługi zdarzeń kliknięcia przycisku, używałeś już technik programowania asynchronicznego.

 

Mechanizmy asynchroniczne pozwalają pojedynczemu serwerowi Node.js na jednoczesną obsługę tysięcy połączeń bez obciążania programisty zarządzaniem wątkami i równoległym wykonywaniem kodu. Takie rzeczy są często źródłem błędów.

 

Node.js zapewnia programiście nieblokujące podstawowe mechanizmy we / wy i ogólnie biblioteki używane we frameworku Node.js są napisane przy użyciu paradygmatów nieblokujących.To sprawia, że ​​blokowanie jest raczej wyjątkiem niż normą.

 

Gdy Node.js musi wykonać operację we / wy, taką jak ładowanie danych z sieci, dostęp do bazy danych lub systemu plików, zamiast blokować główny wątek w oczekiwaniu na wyniki takiej operacji, Node.js zainicjuje wykonanie i kontynuowanie wykonywania innych czynności, aż do otrzymania wyników tej operacji.

 

Biblioteki

 

Dzięki łatwości i wygodzie pracy z menedżerem pakietów dla Node.js o nazwie npm, ekosystem Node.js kwitnie. W rejestrze npm znajduje się obecnie ponad pół miliona pakietów open source, z których może swobodnie korzystać każdy programista Node.js.

 

Po przejrzeniu niektórych głównych cech platformy Node.js, wypróbujmy ją w akcji. Zacznijmy od instalacji.

 

 

Node.js

 

 

Instalowanie Node.js.

 

Node.js można zainstalować na wiele sposobów, o czym za chwilę. Można więc znaleźć oficjalne pakiety instalacyjne dla wszystkich głównych platform.

 

Istnieje jeszcze jeden bardzo wygodny sposób instalacji Node.js, polegający na użyciu menedżera pakietów dostarczonego w systemie operacyjnym. Na przykład menedżer pakietów macOS, który jest de facto standardem w tej dziedzinie, nazywa się Homebrew.

 

Jeśli masz taki w swoim systemie, możesz zainstalować Node.js, uruchamiając to polecenie w wierszu poleceń:

 

zaparzyć węzeł instalacji

 

Listę menedżerów pakietów dla innych systemów operacyjnych, w tym Linux i Windows, można znaleźć tutaj.

 

Popularnym menedżerem wersji Node.js jest nvm. To narzędzie pozwala wygodnie przełączać się między różnymi wersjami Node.js, z jego pomocą możesz na przykład zainstalować i wypróbować nową wersję Node.js, a następnie, jeśli to konieczne, przywrócić starą. Nvm przydaje się także w sytuacji, gdy trzeba przetestować jakiś kod na starej wersji Node.js.

 

Dla początkujących użyj oficjalnych instalatorów Node.js. Użytkownikom macOS zaleca się zainstalowanie Node.js za pomocą Homebrew. Po zainstalowaniu Node.js czas napisać „Hello World”.

 

Pierwsza aplikacja Node.js.

 

Najpopularniejszym przykładem pierwszej aplikacji Node.js jest prosty serwer WWW. Oto jego kod:

const http = require („http”)

const nazwa_hosta = '127.0.0.1'

port const = 3000

const server = http.createServer ((req, res) = & gt; {

res.statusCode = 200

res.setHeader ('Content-Type', 'text / plain')

res.end ('Witaj świecie \ n')

})

server.listen (port, nazwa hosta, () = & gt; {

console.log (`Serwer uruchomiony pod adresem http: // $ {nazwa hosta}: $ {port} /`)

})

 

Aby uruchomić ten kod, zapisz go w pliku server.js i uruchom następującą komendę w terminalu:

 

węzeł server.js

 

Aby sprawdzić serwer, otwórz przeglądarkę i wprowadź w pasku adresu http://127.0.0.1:3000, czyli adres serwera, który zostanie wyświetlony w konsoli po jego pomyślnym uruchomieniu. Jeśli wszystko działa tak, jak powinno, na stronie pojawi się „Hello World”.

 

Spójrzmy na ten przykład.

 

Po pierwsze, zwróć uwagę, że kod zawiera polecenie podłączenia modułu HTTP.

 

Platforma Node.js posiada doskonały standardowy zestaw modułów, który zawiera rozbudowane mechanizmy pracy z siecią.

Metoda obiektu createServer () http tworzy nowy serwer HTTP i zwraca go.

 

Serwer jest skonfigurowany do nasłuchiwania na określonym porcie na określonym hoście. Gdy serwer jest gotowy, wywoływane jest odpowiednie wywołanie zwrotne, informujące nas, że serwer działa.

Gdy serwer odbiera żądanie, wyzwalane jest zdarzenie, które udostępnia dwa obiekty. Pierwsza to żądanie (req, obiekt http.IncomingMessage), druga to odpowiedź (res, obiekt http.ServerResponse). Są to najważniejsze mechanizmy obsługi żądań HTTP.

 

Pierwsza dostarcza nam informacji o zapytaniu. W naszym prostym przykładzie nie używamy tych danych, ale w razie potrzeby korzystając z obiektu, można uzyskać dostęp do nagłówków żądania i przekazywanych w nim danych.

 

Drugi jest potrzebny do utworzenia i wysłania odpowiedzi na zapytanie.

 

W takim przypadku tworzymy odpowiedź na żądanie w następujący sposób. Najpierw ustawiamy kod stanu właściwości na wartość 200, co wskazuje na pomyślną operację:

 

res.statusCode = 200

Następnie ustawiamy tytuł Content-Type:

res.setHeader ('Content-Type', 'text / plain')

Następnie kończymy przygotowanie odpowiedzi, dodając jej zawartość jako argument do metody end ():

res.end ('Witaj świecie \ n')

 

Wspomnieliśmy już, że wokół platformy Node.js powstał potężny ekosystem. Omówmy teraz kilka popularnych frameworków i narzędzi pomocniczych dla Node.js.

 

Struktury i narzędzia pomocnicze dla Node.js.

 

Node.js to platforma niskiego poziomu. Aby uprościć programowanie i ułatwić życie programistom, stworzono ogromną liczbę bibliotek. Niektóre z nich stały się z czasem bardzo popularne. Oto mała lista bibliotek, które moim zdaniem są dobrze zrobione i warte poznania:

 

Wyrazić: Ta biblioteka zapewnia programiście niezwykle proste, ale potężne narzędzie do tworzenia serwerów internetowych. Kluczem do sukcesu Express było minimalistyczne podejście i skupienie się na podstawowych mechanizmach po stronie serwera bez narzucania wizji architektury serwera „z jednej ręki”.

 

Meteor: Jest to potężny framework z pełnym stosem, który przyjmuje izomorficzne podejście do tworzenia aplikacji JavaScript i używania kodu zarówno na kliencie, jak i na serwerze. Kiedyś Meteor był samodzielnym narzędziem, które zawierało wszystko, czego może potrzebować programista. Teraz integruje się również z bibliotekami frontendowymi, takimi jak React, Vue i Angular. Meteor, oprócz tworzenia popularnych aplikacji internetowych, może być również używany w programowaniu mobilnym.

 

Koa: Ten framework sieciowy jest tworzony przez ten sam zespół, który stoi za Express. Opierając się na wieloletnim doświadczeniu z Express, został opracowany z naciskiem na prostotę i zwartość. Ten projekt powstał jako rozwiązanie problemu wprowadzania poważnych zmian w Expressie, które są niezgodne z innymi mechanizmami ramowymi, które mogą podzielić społeczność.

 

Next.js: Ten framework jest przeznaczony do organizowania renderowania aplikacji React po stronie serwera.

 

Mikro: Jest to bardzo lekka biblioteka do tworzenia asynchronicznych mikrousług HTTP.

Socket.io. Jest to biblioteka do tworzenia aplikacji sieciowych czasu rzeczywistego.

 

W rzeczywistości w ekosystemie Node.js można znaleźć bibliotekę pomocniczą do prawie każdego zadania. Jak możesz sobie wyobrazić, zbudowanie takiego ekosystemu zajmuje dużo czasu. Platforma Node.js pojawiła się w 2009 roku. W czasie jej istnienia wydarzyło się wiele rzeczy, o których powinien wiedzieć programiści chcący się tej platformy nauczyć.

 

Krótka historia Node.js.

 

Node.js ma w tym roku 9 lat. To oczywiście nie tyle, jeśli porównasz ten wiek z wiekiem JavaScript, który ma już 23 lata, lub z 25-letnim wiekiem internetu, jaki znamy, jeśli liczyć od nadejścia mozaiki przeglądarka.

 

9 lat to krótki czas dla technologii, ale teraz wydaje się, że platforma Node.js istniała zawsze.

 

Z Node.js z wczesnych wersji platformy, gdy miała zaledwie 2 lata. Nawet wtedy, mimo że nie było zbyt wielu informacji o Node.js, można było już poczuć, że Node.js jest bardzo poważny.

 

Porozmawiajmy teraz o technologiach stojących za Node.js i rzućmy okiem nagłówne zmiany związane z tą platformą.

 

Tak więc JavaScript jest językiem programowania, który został stworzony w Netscape jako język skryptowy do manipulowania stronami internetowymi w przeglądarce Netscape Navigator.

Część działalności firmy Netscape polegała na sprzedaży serwerów internetowych, które zawierały środowisko o nazwie Netscape LiveWire. Umożliwiło tworzenie dynamicznych stron internetowych przy użyciu JavaScript po stronie serwera.

 

pomysł wykorzystania JS do programowania po stronie serwera jest znacznie starszy niż Node.js. Pomysł ten jest prawie tak stary jak sam JavaScript, ale w tamtym czasie JS po stronie serwera nie był popularny.

 

Jednym z kluczowych czynników, które sprawiły, że platforma Node.js stała się tak rozpowszechniona i popularna, jest moment jej pierwszego pojawienia się. Tak więc kilka lat wcześniej JavaScript zaczął być uważany za poważny język. Stało się to dzięki aplikacjom Web 2.0, takim jak Google Maps czy Gmail, które pokazały światu potęgę nowoczesnych technologii internetowych.

 

Dzięki wojnie konkurencyjnej przeglądarek, która trwa do dziś, wydajność silników JavaScript znacznie wzrosła. Zespoły programistów zajmujące się głównymi przeglądarkami codziennie pracują nad poprawą wydajności swoich rozwiązań, co ma ogólnie korzystny wpływ na JavaScript.

 

Jednym z takich silników jest wspomniany już V8, używany w przeglądarce Chrome i używany w Node.js. Jest to jeden z rezultatów dążenia twórców przeglądarek do wysokowydajnego kodu JavaScript.

 

Oczywiście popularność Node.js opiera się nie tylko na szczęśliwym przypadku i na tym, że platforma narodziła się we właściwym czasie. Przedstawiła światu innowacyjne podejście do programowania JavaScript po stronie serwera. Spójrzmy na główne kamienie milowe w historii Node.js.

 

2009


  • Pojawienie się Node.js.

  • Wykonanie pierwszego wariantu npm.

 

2010

  • Wygląd Express.

  • Pojawienie się Socket.io.

 

2011


  • Wydanie NPM 1.0.

  • Duże firmy, takie jak LinkedIn i Uber, zaczęły korzystać z Node.js.

 

2012


  • Szybki wzrost popularności Node.js.

 

2013


  • Pojawienie się Ghost, pierwszej dużej platformy do publikacji korzystających z Node.js.

  • Uwolnienie Koa.

 

2014


  • W tym roku miały miejsce dramatyczne wydarzenia. Pojawił się projekt IO.js będący rozwidleniem Node.js, którego celem było między innymi wprowadzenie obsługi ES6 oraz przyspieszenie rozwoju platformy.

 

2015


  • Powstaje Node.js Foundation.

  • Scalanie IO.js i Node.js.

  • W npm staje się możliwa praca z modułami prywatnymi.

  • Yield Node.js 4 (należy zauważyć, że wersje 1, 2 i 3 z platformy nie były).

 

2016


  • Incydent z pakietem lewej podkładki.

  • Pojawienie się przędzy.

  • Wydanie Node.js 6.

 

2017


  • Npm zaczyna zwracać większą uwagę na bezpieczeństwo.

  • Wydanie Node.js 8

  • Pojawienie się obsługi HTTP / 2.

  • V8 jest oficjalnie uznawany za silnik JS przeznaczony nie tylko dla Chrome, ale także dla Node.

  • Co tydzień są pobierane 3 miliardy plików npm.

 

2018


  • Wydanie Node.js 10.

  • Wsparcie dla modułów ES.

  • Eksperymentalna obsługa MJS.