Č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

Rezultat - 0
RedSwitches Logo
RedSwitches

RedSwitch

Pearl
$6.94 /Mjesečno


Lokacije poslužitelja


RedSwitches Servers in NetherlandsNizozemska RedSwitches Servers in UnionUjedinjene države RedSwitches Servers in MelbourneAustralija RedSwitches Servers in MumbaiIndija RedSwitches Servers in GermanyNjemačka
Usporedite
Rezultat - 0
Hostarina Logo
Hostarina

Hostarina

Personal
$2.92 /Mjesečno


Lokacije poslužitelja


Hostarina Servers in UnionUjedinjene države Hostarina Servers in RawalpindiPakistan Hostarina Servers in MunichNjemačka
Usporedite
Rezultat - 0
Net9 Oy Logo
Net9 Oy

Net9 Oy

Small
$1.13 /Mjesečno


Lokacije poslužitelja


Net9 Oy Servers in StockholmŠvedska Net9 Oy Servers in HelsinkiFinska Net9 Oy Servers in ParisFrancuska
Usporedite
Rezultat - 0
Heroku Logo
Heroku

Heroku

Hobby
$7 /Mjesečno


Lokacije poslužitelja


Heroku Servers in United StatesUjedinjene države
Usporedite
Rezultat - 0
Awareindia.net Logo
Awareindia.net

Awareindia.net

Linux Hosting Plan G
$5.83 /Mjesečno

Usporedite
Rezultat - 0
Chemi Cloud Logo
Chemi Cloud

Oblak Chemi

Ionic
$2.95 /Mjesečno


Lokacije poslužitelja


Chemi Cloud Servers in BangaloreIndija Chemi Cloud Servers in New YorkUjedinjene države Chemi Cloud Servers in BucharestRumunjska Chemi Cloud Servers in LondonUjedinjeno Kraljevstvo Chemi Cloud Servers in AmsterdamNizozemska Chemi Cloud Servers in TorontoKanada Chemi Cloud Servers in SydneyAustralija
Usporedite
Rezultat - 0
Oudel Logo
Oudel

Oudel

cPanel Hosting 1
$5.95 /Mjesečno


Lokacije poslužitelja


Oudel Servers in UnionUjedinjene države
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.