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
Host Me Host Filter

System operacyjny

Miejsca na dysku

Pamięć RAM

Typ dysku

Rdzenie procesora

Sortować

Wynik - 9
A2hosting Logo
A2hosting

A2hosting

Lite
$3.92 /Miesięczny

50 Kupony

Lokalizacje serwerów


A2hosting Servers in AmsterdamHolandia A2hosting Servers in MichiganStany Zjednoczone A2hosting Servers in SingaporeSingapur
Porównać
Wynik - 5.2
Dream Host Logo
Dream Host

Dream Host

DreamObjects 40 GB
$0.95 /Miesięczny

29 Kupony

Lokalizacje serwerów


Dream Host Servers in AshburnStany Zjednoczone
Porównać
Zaufaj pilotowi ICDSoft
Wynik - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /Miesięczny

Recenzje 233


Lokalizacje serwerów


ICDSoft Servers in SofiaBułgaria ICDSoft Servers in BostonStany Zjednoczone ICDSoft Servers in Hong KongHongkong
Porównać
Zaufaj pilotowi ICDSoft
Wynik - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /Miesięczny

Recenzje 233


Lokalizacje serwerów


ICDSoft Servers in SofiaBułgaria ICDSoft Servers in BostonStany Zjednoczone ICDSoft Servers in Hong KongHongkong
Porównać
Zaufaj pilotowi Keliweb
Wynik - 9.8
Keliweb Logo
Keliweb

Keliweb

Prime
$5.51 /Miesięczny

Recenzje 453


Lokalizacje serwerów


Keliweb Servers in MilanoWłochy
Porównać
Zaufaj pilotowi JustHostMe
Wynik - 9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /Miesięczny

Recenzje 72


Lokalizacje serwerów


JustHostMe Servers in United KingdomZjednoczone Królestwo
Porównać
Zaufaj pilotowi Dream VPS
Wynik - 8.6
Dream VPS Logo
Dream VPS

Dream VPS

STARTER
$3.75 /Miesięczny

Recenzje 7


Lokalizacje serwerów


Dream VPS Servers in Hong KongHongkong Dream VPS Servers in Santa Clara Dream VPS Servers in New YorkStany Zjednoczone Dream VPS Servers in LondonZjednoczone Królestwo Dream VPS Servers in AmsterdamHolandia Dream VPS Servers in FrankfurtNiemcy Dream VPS Servers in IsraelIzrael
Porównać
Zaufaj pilotowi Reseller Cube
Wynik - 8
Reseller Cube Logo
Reseller Cube

Kostka sprzedawcy

Basic USA
$5 /Miesięczny

Recenzje 4


Lokalizacje serwerów


Reseller Cube Servers in RaleighStany Zjednoczone
Porównać
Zaufaj pilotowi Univa Host
Wynik - 8
Univa Host Logo
Univa Host

Univa Host

E-ECONOMY
$2.99 /Miesięczny

Recenzje 3


Lokalizacje serwerów


Univa Host Servers in GermanyNiemcy Univa Host Servers in United StatesStany Zjednoczone
Porównać
Zaufaj pilotowi OperaVPS
Wynik - 7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /Miesięczny

Recenzje 3


Lokalizacje serwerów


OperaVPS Servers in United KingdomZjednoczone Królestwo OperaVPS Servers in AustriaAustria OperaVPS Servers in CanadaKanada OperaVPS Servers in DenmarkDania OperaVPS Servers in FranceFrancja OperaVPS Servers in GermanyNiemcy OperaVPS Servers in ItalyWłochy OperaVPS Servers in NetherlandsHolandia OperaVPS Servers in RomaniaRumunia OperaVPS Servers in United StatesStany Zjednoczone
Porównać
Zaufaj pilotowi L3Web Hosting
Wynik - 7.6
L3Web Hosting Logo
L3Web Hosting

Hosting L3Web

START UP
$1.99 /Miesięczny

Recenzje 2


Lokalizacje serwerów


L3Web Hosting Servers in IndiaIndie L3Web Hosting Servers in MunichNiemcy L3Web Hosting Servers in MiamiStany Zjednoczone L3Web Hosting Servers in SingaporeSingapur L3Web Hosting Servers in United KingdomZjednoczone Królestwo
Porównać
Zaufaj pilotowi Idea Stack
Wynik - 7.4
Idea Stack Logo
Idea Stack

Stos pomysłów

LEVEL 1
$2 /Miesięczny

Recenzje 2


Lokalizacje serwerów


Idea Stack Servers in SeattleStany Zjednoczone
Porównać
Zaufaj pilotowi Epic Host
Wynik - 7.4
Epic Host Logo
Epic Host

Epic Host

Cloud hosting
$2.37 /Miesięczny

Recenzje 1


Lokalizacje serwerów


Epic Host Servers in New DelhiIndie Epic Host Servers in UnionStany Zjednoczone
Porównać
Zaufaj pilotowi itanets.co.uk
Wynik - 7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /Miesięczny

Recenzje 2

Porównać
Zaufaj pilotowi Digital Ocean
Wynik - 3.8
Digital Ocean Logo
Digital Ocean

Cyfrowy ocean

$5 /mo
$5 /Miesięczny

Recenzje 214

38 Kupony

Lokalizacje serwerów


Digital Ocean Servers in IndiaIndie Digital Ocean Servers in New YorkStany Zjednoczone Digital Ocean Servers in AmsterdamHolandia Digital Ocean Servers in LondonZjednoczone Królestwo Digital Ocean Servers in TorontoKanada Digital Ocean Servers in Frankfurt am MainNiemcy Digital Ocean Servers in SingaporeSingapur
Porównać
Wynik - 10
HOST PRO KE Logo
HOST PRO KE

HOST PRO KE

Host Pro Starter
$9.38 /Rocznie


Lokalizacje serwerów


HOST PRO KE Servers in GermanyNiemcy
Porównać
Wynik - 9.4
Accu WebHosting Logo
Accu WebHosting

Accu WebHosting

Windows Personal Web Hosting
$2.99 /Miesięczny

19 Kupony

Lokalizacje serwerów


Accu WebHosting Servers in FranceFrancja Accu WebHosting Servers in DenverStany Zjednoczone Accu WebHosting Servers in MumbaiIndie Accu WebHosting Servers in AmsterdamHolandia Accu WebHosting Servers in Frankfurt am MainNiemcy Accu WebHosting Servers in SydneyAustralia Accu WebHosting Servers in LondonZjednoczone Królestwo Accu WebHosting Servers in PolandPolska Accu WebHosting Servers in CanadaKanada Accu WebHosting Servers in SingaporeSingapur
Porównać
Wynik - 9
Be hostings Logo
Be hostings

Bądź gospodarzami

StarterSSL
$3.36 /Miesięczny


Lokalizacje serwerów


Be hostings Servers in BrusselsBelgia
Porównać
Wynik - 4.3
Gear Host Logo
Gear Host

Gear Host

CloudSite Hobby
$5 /Miesięczny


Lokalizacje serwerów


Gear Host Servers in DenverStany Zjednoczone
Porównać
Wynik - 1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /Miesięczny


Lokalizacje serwerów


Mikro VPS Servers in BudapestWęgry
Porównać
Wynik - 0
Simple Node Logo
Simple Node

Prosty węzeł

OpenVZ - 256MB
$3 /Miesięczny

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.

 

Micro: 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.