Čvor.JS (Node.JS)

Node.js je runtime JavaScript-a s više platformi otvorenog koda koji se izvodi na poslužiteljima. Od objavljivanja 2009. godine, ova je platforma postala izuzetno popularna i danas igra vrlo važnu ulogu na polju web razvoja.
Za cijeli članak na Node.JS ...

Prikaži filtar
Hosting filtera
A2 Themes & Host Me Filter

Operativni sustav

Prostor na disku

RAM memorija

Vrsta diska

CPU jezgre

Vrsta

Trust Pilot Dream Host
Rezultat - 9.7
Dream Host Logo
Dream Host

Domaćin iz snova

DreamObjects 40 GB
$0.95 /Mjesečno

Recenzije 3778

29 Kuponi

Lokacije poslužitelja


Dream Host Servers in AshburnUjedinjene države
Usporedite
Trust Pilot ICDSoft
Rezultat - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /Mjesečno

Recenzije 233


Lokacije poslužitelja


ICDSoft Servers in SofiaBugarska ICDSoft Servers in BostonUjedinjene države ICDSoft Servers in Hong KongHong Kong
Usporedite
Trust Pilot ICDSoft
Rezultat - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /Mjesečno

Recenzije 233


Lokacije poslužitelja


ICDSoft Servers in SofiaBugarska ICDSoft Servers in BostonUjedinjene države ICDSoft Servers in Hong KongHong Kong
Usporedite
Rezultat - 9
A2hosting Logo
A2hosting

A2hosting

Lite
$3.92 /Mjesečno

50 Kuponi

Lokacije poslužitelja


A2hosting Servers in AmsterdamNizozemska A2hosting Servers in MichiganUjedinjene države A2hosting Servers in SingaporeSingapur
Usporedite
Trust Pilot Keliweb
Rezultat - 9.8
Keliweb Logo
Keliweb

Keliweb

Prime
$5.51 /Mjesečno

Recenzije 453


Lokacije poslužitelja


Keliweb Servers in MilanoItalija
Usporedite
Trust Pilot JustHostMe
Rezultat - 9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /Mjesečno

Recenzije 72


Lokacije poslužitelja


JustHostMe Servers in United KingdomUjedinjeno Kraljevstvo
Usporedite
Trust Pilot Dream VPS
Rezultat - 8.6
Dream VPS Logo
Dream VPS

San VPS

STARTER
$3.75 /Mjesečno

Recenzije 7


Lokacije poslužitelja


Dream VPS Servers in Hong KongHong Kong Dream VPS Servers in Santa Clara Dream VPS Servers in New YorkUjedinjene države Dream VPS Servers in LondonUjedinjeno Kraljevstvo Dream VPS Servers in AmsterdamNizozemska Dream VPS Servers in FrankfurtNjemačka Dream VPS Servers in IsraelIzrael
Usporedite
Trust Pilot Reseller Cube
Rezultat - 8
Reseller Cube Logo
Reseller Cube

Kocka preprodavača

Basic USA
$5 /Mjesečno

Recenzije 4


Lokacije poslužitelja


Reseller Cube Servers in RaleighUjedinjene države
Usporedite
Trust Pilot Univa Host
Rezultat - 8
Univa Host Logo
Univa Host

Domaćin Unive

E-ECONOMY
$2.99 /Mjesečno

Recenzije 3


Lokacije poslužitelja


Univa Host Servers in GermanyNjemačka Univa Host Servers in United StatesUjedinjene države
Usporedite
Trust Pilot OperaVPS
Rezultat - 7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /Mjesečno

Recenzije 3


Lokacije poslužitelja


OperaVPS Servers in United KingdomUjedinjeno Kraljevstvo OperaVPS Servers in AustriaAustrija OperaVPS Servers in CanadaKanada OperaVPS Servers in DenmarkDanska OperaVPS Servers in FranceFrancuska OperaVPS Servers in GermanyNjemačka OperaVPS Servers in ItalyItalija OperaVPS Servers in NetherlandsNizozemska OperaVPS Servers in RomaniaRumunjska OperaVPS Servers in United StatesUjedinjene države
Usporedite
Trust Pilot L3Web Hosting
Rezultat - 7.6
L3Web Hosting Logo
L3Web Hosting

L3Web hosting

START UP
$1.99 /Mjesečno

Recenzije 2


Lokacije poslužitelja


L3Web Hosting Servers in IndiaIndija L3Web Hosting Servers in MunichNjemačka L3Web Hosting Servers in MiamiUjedinjene države L3Web Hosting Servers in SingaporeSingapur L3Web Hosting Servers in United KingdomUjedinjeno Kraljevstvo
Usporedite
Trust Pilot Idea Stack
Rezultat - 7.4
Idea Stack Logo
Idea Stack

Stog ideja

LEVEL 1
$2 /Mjesečno

Recenzije 2


Lokacije poslužitelja


Idea Stack Servers in SeattleUjedinjene države
Usporedite
Trust Pilot Epic Host
Rezultat - 7.4
Epic Host Logo
Epic Host

Epski voditelj

Cloud hosting
$2.37 /Mjesečno

Recenzije 1


Lokacije poslužitelja


Epic Host Servers in New DelhiIndija Epic Host Servers in UnionUjedinjene države
Usporedite
Trust Pilot itanets.co.uk
Rezultat - 7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /Mjesečno

Recenzije 2

Usporedite
Trust Pilot Digital Ocean
Rezultat - 3.8
Digital Ocean Logo
Digital Ocean

Digitalni ocean

$5 /mo
$5 /Mjesečno

Recenzije 214

38 Kuponi

Lokacije poslužitelja


Digital Ocean Servers in IndiaIndija Digital Ocean Servers in New YorkUjedinjene države Digital Ocean Servers in AmsterdamNizozemska Digital Ocean Servers in LondonUjedinjeno Kraljevstvo Digital Ocean Servers in TorontoKanada Digital Ocean Servers in Frankfurt am MainNjemačka Digital Ocean Servers in SingaporeSingapur
Usporedite
Rezultat - 10
HOST PRO KE Logo
HOST PRO KE

VODITELJ PRO KE

Host Pro Starter
$9.38 /Godišnje


Lokacije poslužitelja


HOST PRO KE Servers in GermanyNjemačka
Usporedite
Rezultat - 9.4
Accu WebHosting Logo
Accu WebHosting

Accu WebHosting

Windows Personal Web Hosting
$2.99 /Mjesečno

19 Kuponi

Lokacije poslužitelja


Accu WebHosting Servers in FranceFrancuska Accu WebHosting Servers in DenverUjedinjene države Accu WebHosting Servers in MumbaiIndija Accu WebHosting Servers in AmsterdamNizozemska Accu WebHosting Servers in Frankfurt am MainNjemačka Accu WebHosting Servers in SydneyAustralija Accu WebHosting Servers in LondonUjedinjeno Kraljevstvo Accu WebHosting Servers in PolandPoljska Accu WebHosting Servers in CanadaKanada Accu WebHosting Servers in SingaporeSingapur
Usporedite
Rezultat - 9
Be hostings Logo
Be hostings

Budite domaćini

StarterSSL
$3.36 /Mjesečno


Lokacije poslužitelja


Be hostings Servers in BrusselsBelgija
Usporedite
Rezultat - 4.3
Gear Host Logo
Gear Host

Domaćin prijenosnika

CloudSite Hobby
$5 /Mjesečno


Lokacije poslužitelja


Gear Host Servers in DenverUjedinjene države
Usporedite
Rezultat - 1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /Mjesečno


Lokacije poslužitelja


Mikro VPS Servers in BudapestMađarska
Usporedite
Rezultat - 0
Simple Node Logo
Simple Node

Jednostavan čvor

OpenVZ - 256MB
$3 /Mjesečno

Usporedite

 

Node.js

 

 

Node.js je runtime JavaScript-a s više platformi otvorenog koda koji se izvodi na poslužiteljima. Od objavljivanja 2009. godine, ova je platforma postala izuzetno popularna i danas igra vrlo važnu ulogu na polju web razvoja. Ako broj pokazatelja koji je projekt prikupio na GitHubu uzmemo u obzir kao pokazatelj popularnosti, tada je Node.js, koji ima više od 50 000 zvjezdica, vrlo, vrlo popularan projekt.

 

Platforma Node.js izgrađena je na Googleovom V8 JavaScript mehanizmu koji se koristi u pregledniku Google Chrome. Ova se platforma uglavnom koristi za stvaranje web poslužitelja, ali njezin opseg nije ograničen na to.

 

Pogledajmo glavne značajke Node.js.

 

Ubrzati

 

Jedna od glavnih atrakcija Node.js-a je brzina. JavaScript kôd izveden u Node.js može biti dvostruko brži od koda napisanog u kompiliranim jezicima kao što su C ili Java, a redoslijed veličina brži od interpretiranih jezika poput Pythona ili Rubyja. Razlog tome je neblokirajuća arhitektura platforme, a konkretni rezultati ovise o korištenim mjerilima, ali sveukupno je Node.js vrlo brza platforma.

 

Jednostavnost

 

Platformu Node.js lako je naučiti i koristiti. Zapravo je to vrlo jednostavno, pogotovo u usporedbi s nekim drugim poslužiteljskim platformama.

 

JavaScript

 

JavaScript se izvršava u okruženju Node.js. To znači da milijuni front-end programera koji već koriste JavaScript u pregledniku mogu pisati i kod poslužitelja i klijenta na istom programskom jeziku, a da ne moraju naučiti potpuno novi alat za prelazak na razvoj na strani poslužitelja.

 

Preglednik i poslužitelj koriste iste jezične koncepte. Uz to, Node.js može brzo prijeći na nove standarde ECMAScript kako su implementirani na platformi.

 

Ne treba čekati da korisnici osvježe svoje preglednike zbog toga jer je Node.js okruženje na poslužitelju koje u potpunosti kontrolira razvojni programer. Kao rezultat toga, nove jezične značajke postaju dostupne kada instalirate prateću verziju Node.js.

 

V8 motor

 

U središtu Node.js-a, između ostalih rješenja, nalazi se Googleov V8 JavaScript mehanizam otvorenog koda koji se koristi u Google Chromeu i ostalim preglednicima. To znači da Node.js iskorištava tisuće inženjera koji su nevjerojatno brzo izvršili JavaScript Chrome i nastavljaju raditi na poboljšanju V8.

 

Asinhronija

 

U tradicionalnim programskim jezicima (C, Java, Python, PHP) sve se upute blokiraju prema zadanim postavkama, osim ako se programer izričito ne pobrine za asinkrono izvršavanje koda. Kao rezultat toga, ako, na primjer, u takvom okruženju podnesete mrežni zahtjev za preuzimanje nekog JSON koda, izvršavanje toka iz kojeg se izrađuje zahtjev obustavit će se dok se ne primi i ne obradi odgovor.

 

JavaScript mnogo olakšava pisanje asinkronog i neblokirajućeg koda pomoću jedne niti, povratnih poziva i pristupa razvoju usmjerenog na događaje. Svaki put kad trebamo izvršiti tešku operaciju, prosljeđujemo povratni poziv odgovarajućem mehanizmu, koji će biti pozvan odmah nakon završetka ove operacije. Kao rezultat, nema potrebe čekati rezultate takvih operacija kako bi program nastavio raditi.

 

Sličan mehanizam nastao je u preglednicima. Ne možemo si priuštiti da čekamo, recimo, naAJAXzatražite završetak, a da ne možete odgovoriti na radnje korisnika, poput klikova na gumbe. Kako bi korisnicima bilo prikladno raditi s web stranicama, sve, i preuzimanje podataka s mreže i obrada klikova na gumbe, mora se odvijati istovremeno, u stvarnom vremenu.

 

Ako ste ikad stvorili obrađivač događaja klikom na gumb, već ste koristili tehnike sinkronog programiranja.

 

Asinkroni mehanizmi omogućuju jednom poslužitelju Node.js da istovremeno obrađuje tisuće veza bez opterećivanja programera zadacima upravljanja nitima i paralelnog izvršavanja koda. Takve stvari često su izvor pogrešaka.

 

Node.js pruža programeru neblokirajuće osnovne I / O mehanizme, a općenito su knjižnice korištene u okviru Node.js napisane pomoću neblokirajućih paradigmi.To ponašanje blokiranja čini iznimkom, a ne normom.

 

Kada Node.js treba izvršiti I / O operaciju, poput učitavanja podataka s mreže, pristupa bazi podataka ili datotečnom sustavu, umjesto da blokira glavnu nit koja čeka rezultate takve operacije, Node.js će pokrenuti izvršenje i nastavite raditi druge stvari dok se ne dobiju rezultati ove operacije.

 

Knjižnice

 

S lakoćom i praktičnošću rada s upraviteljem paketa za Node.js zvanim npm, ekosustav Node.js napreduje. U registru npm sada postoji preko pola milijuna paketa otvorenog koda koje bilo koji programer Node.js može slobodno koristiti.

 

Nakon što smo pregledali neke od glavnih značajki platforme Node.js, isprobajmo je na djelu. Krenimo s instalacijom.

 

 

Node.js

 

 

Instaliranje Node.js

 

Node.js se može instalirati na razne načine, što ćemo pokriti u trenutku. Dakle, mogu se pronaći službeni instalacijski paketi za sve glavne platforme.

 

Postoji još jedan vrlo prikladan način za instalaciju Node.js-a, a to je korištenje upravitelja paketa predviđenog u operacijskom sustavu. Na primjer, upravitelj macOS paketa, koji je de facto standard na ovom području, naziva se Homebrew.

 

Ako ga imate na vašem sustavu, možete instalirati Node.js pokretanjem ove naredbe na naredbenom retku:

 

pivo instalacijski čvor

 

Popis upravitelja paketa za druge operativne sustave, uključujući Linux i Windows, možete pronaći ovdje.

 

Popularni upravitelj verzija Node.js je nvm. Ovaj vam alat omogućuje ugodno prebacivanje između različitih verzija Node.js-a, uz njegovu pomoć možete, na primjer, instalirati i isprobati novu verziju Node.js, a zatim se, ako je potrebno, vratiti na staru. Nvm je također koristan u situaciji kada trebate testirati neki kôd na staroj verziji Node.js.

 

Za početnike da koriste službene programe za instaliranje Node.js. Za korisnike macOS-a preporučio bi instaliranje Node.js koristeći Homebrew. Sad kad ste instalirali Node.js, vrijeme je da napišete "Hello World".

 

Prva aplikacija Node.js

 

Najčešći primjer prve aplikacije Node.js jednostavan je web poslužitelj. Evo njegovog koda:

const http = zahtijeva ('http')

const hostname = '127.0.0.1'

const port = 3000

const poslužitelj = http.createServer ((req, res) = & gt; {

res.statusCode = 200

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

res.end ('Pozdrav svijetu \ n')

})

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

console.log (`Poslužitelj pokrenut na http: // $ {hostname}: $ {port} /`)

})

 

Da biste pokrenuli ovaj kod, spremite ga u datoteku server.js i pokrenite sljedeću naredbu u terminalu:

 

čvor poslužitelj.js

 

Da biste provjerili poslužitelj, otvorite preglednik i u adresnu traku unesite http://127.0.0.1:3000, odnosno adresu poslužitelja koja će se prikazati u konzoli nakon uspješnog pokretanja. Ako sve funkcionira kako treba, na stranici će se pojaviti "Hello World".

 

Pogledajmo ovaj primjer.

 

Prvo primijetite da kôd sadrži naredbu za povezivanje HTTP modula.

 

Platforma Node.js ima izvrstan standardni set modula, koji uključuje dobro razvijene mehanizme za rad s mrežom.

Metoda objekta createServer () http stvara novi HTTP poslužitelj i vraća ga.

 

Poslužitelj je konfiguriran za preslušavanje na određenom portu na određenom hostu. Kad je poslužitelj spreman, poziva se odgovarajući povratni poziv koji nas obavještava da je poslužitelj pokrenut.

Kad poslužitelj primi zahtjev, aktivira se događaj koji pruža dva objekta. Prvi je zahtjev (req, http.IncomingMessage objekt), drugi je odgovor (res, http.ServerResponse objekt). Oni su najvažniji mehanizmi za rukovanje HTTP zahtjevima.

 

Prva nam pruža informacije o zahtjevu. U našem jednostavnom primjeru ne koristimo ove podatke, ali ako je potrebno, pomoću objekta, možete pristupiti zaglavljima zahtjeva i podacima koji su u njemu proslijeđeni.

 

Drugi je potreban za formiranje i slanje odgovora na zahtjev.

 

U ovom slučaju odgovor na zahtjev oblikujemo na sljedeći način. Prvo postavimo kod statusa svojstva na vrijednost 200, što ukazuje na uspješnu operaciju:

 

res.statusCode = 200

Zatim postavljamo naslov Content-Type:

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

Zatim dovršavamo pripremu odgovora dodavanjem njegovog sadržaja kao argumenta na metodu end ():

res.end ('Pozdrav svijetu \ n')

 

Već smo spomenuli da se oko platforme Node.js stvorio moćan ekosustav. Razmotrimo sada neke popularne okvire i pomoćne alate za Node.js.

 

Okviri i pomoćni alati za Node.js

 

Node.js je platforma niske razine. Kako bi se pojednostavio razvoj i olakšao život programerima, stvoren je ogroman broj knjižnica. Neki od njih s vremenom su postali vrlo popularni. Evo malog popisa knjižnica za koje mislim da su dobro odrađene i da ih vrijedi istražiti:

 

Izraziti: Ova knjižnica pruža programeru izuzetno jednostavan, ali moćan alat za izgradnju web poslužitelja. Ključ uspjeha Expressa bio je minimalistički pristup i usredotočenost na osnovne mehanizme na strani poslužitelja bez pokušaja nametanja vizije poslužiteljske arhitekture "na jednom mjestu".

 

Meteor: To je moćan full-stack okvir koji zauzima izomorfni pristup razvoju JavaScript aplikacija i korištenju koda i na klijentu i na poslužitelju. Nekada je Meteor bio samostalni alat koji uključuje sve što je programeru trebalo. Sada se također integrira s frontend knjižnicama kao što su React, Vue i Angular. Meteor se, osim za razvoj uobičajenih web aplikacija, može koristiti i za razvoj mobilnih uređaja.

 

Koa: Ovaj web okvir izradio je isti tim koji stoji iza Expressa. Nadovezujući se na dugogodišnje iskustvo s Expressom, razvijen je s naglaskom na jednostavnosti i kompaktnosti. Ovaj je projekt nastao kao rješenje problema uvođenja velikih promjena u Express koje su nespojive s drugim okvirnim mehanizmima koji bi mogli podijeliti zajednicu.

 

Dalje.js: Ovaj je okvir dizajniran za organizaciju reagiranja aplikacija na strani poslužitelja.

 

Mikro: To je vrlo lagana knjižnica za izgradnju asinkronih HTTP mikroservisa.

Utičnica.io. To je knjižnica za razvoj mrežnih aplikacija u stvarnom vremenu.

 

U stvari, u ekosustavu Node.js možete pronaći pomoćnu biblioteku za gotovo bilo koji zadatak. Kao što možete zamisliti, potrebno je puno vremena za izgradnju takvog ekosustava. Platforma Node.js pojavila se 2009. Tijekom svog postojanja dogodilo se puno stvari koje bi programeru koji želi naučiti ovu platformu trebao biti poznat.

 

Kratka povijest Node.js

 

Node.js ove godine ima 9 godina. To, naravno, nije toliko kada ovu dob usporedite s dobom JavaScripta kojemu su već 23 godine ili s 25-godišnjim dobom weba koliko ga poznajemo ako računate od pojave Mozaika preglednik.

 

Devet godina je kratko vrijeme za tehnologiju, ali čini se da platforma Node.js oduvijek postoji.

 

S Node.js iz ranih verzija platforme kada je imala samo 2 godine. Čak i tada, unatoč činjenici da o Node.js nije bilo toliko podataka, već se moglo osjetiti da je Node.js vrlo ozbiljan.

 

Sada razgovarajmo o tehnologijama iza Node.js-a i na brzinu pogledajteglavni događaji povezani s ovom platformom.

 

Dakle, JavaScript je programski jezik koji je stvoren u Netscapeu kao skriptni jezik za manipulaciju web stranicama u pregledniku Netscape Navigator.

Dio poslovanja Netscapea bio je prodaja web poslužitelja, što je uključivalo okruženje zvano Netscape LiveWire. Omogućilo vam je stvaranje dinamičnih web stranica pomoću JavaScript-a na poslužitelju.

 

ideja upotrebe JS-a za razvoj na strani poslužitelja puno je starija od Node.js. Ova je ideja stara gotovo koliko i sam JavaScript, ali u dotično vrijeme JS na poslužitelju nije bio popularan.

 

Jedan od ključnih čimbenika zbog kojih je Node.js platforma postala toliko raširena i popularna je kada se prvi put pojavila. Dakle, nekoliko godina ranije JavaScript se počeo smatrati ozbiljnim jezikom. To se dogodilo zahvaljujući aplikacijama Web 2.0 kao što su Google Maps ili Gmail, koje su svijetu pokazale snagu modernih web tehnologija.

 

Zahvaljujući konkurentskom ratu preglednika, koji traje i danas, performanse JavaScript motora znatno su se povećale. Razvojni timovi koji stoje iza glavnih preglednika svakodnevno rade na poboljšanju performansi njihovih rješenja, što povoljno utječe na JavaScript općenito.

 

Jedan od takvih pokretača je već spomenuti V8, koji se koristi u pregledniku Chrome i koristi u Node.js. To je jedan od rezultata programera preglednika koji teže JavaScript kodu visokih performansi.

 

Naravno, popularnost Node.js-a temelji se ne samo na sretnoj slučajnosti i na činjenici da je platforma rođena u pravo vrijeme. Upoznala je svijet s inovativnim pristupom razvoju JavaScript-a na poslužitelju. Pogledajmo glavne prekretnice u povijesti Node.js.

 

2009


  • Pojava Node.js

  • Izrada prve npm varijante.

 

2010

  • Pojava Expressa.

  • Pojava Socket.io.

 

2011


  • Npm 1.0 izdanje.

  • Velike tvrtke poput LinkedIna i Ubera počele su koristiti Node.js.

 

2012


  • Brzi rast popularnosti Node.js.

 

2013


  • Pojava Ghost-a, prve velike platforme za publikacije koje koriste Node.js.

  • Puštanje Koa.

 

2014


  • Ove godine dogodili su se dramatični događaji. Pojavio se projekt IO.js, koji je račvanje Node.js, čija je svrha, između ostalog, bila uvođenje ES6 podrške i ubrzanje razvoja platforme.

 

2015


  • Osnovana je Zaklada Node.js

  • Spajanje IO.js i Node.js.

  • U npm postaje moguć rad s privatnim modulima.

  • Prinos Node.js 4 (valja napomenuti da verzije 1, 2 i 3 s platforme nisu).

 

2016


  • Incident s lijevim jastučićem.

  • Pojava pređe.

  • Izdanje Node.js 6.

 

2017


  • Npm počinje sve više paziti na sigurnost.

  • Izdanje Node.js 8

  • Pojava podrške za HTTP / 2.

  • V8 je službeno prepoznat kao JS motor dizajniran ne samo za Chrome već i za Node.

  • Svakog se tjedna preuzme 3 milijarde npm.

 

2018


  • Izdanje Node.js 10.

  • Podrška za ES module.

  • Eksperimentalna podrška za mjs.