Node.js za početnike: opis, priručnik, značajke
Node.js jаvascript je runtime motor ugrađen u JS V8 verziju motora iz preglednika Chrome. Node.js za platformu za početnike koristi model koji pokreće događaj i ne blokira I / O, što ga čini jednostavnim i učinkovitijim. Paketni ekosustav Node.js najveći je ekosustav knjižnica otvorenog koda u svijetu. Projekt podržava Node.js. Doprinosi, politike i problemi kontroliraju se u okviru modela otvorenog upravljanja.
sadržaj
Node.js za početnike: definicija
Node.js je open source razvojna platforma za pokretanje jаvascript na strani poslužitelja. Čvor je koristan za razvoj aplikacija koje zahtijevaju trajnu vezu s preglednika na poslužitelj. Često se koristi za aplikacije u stvarnom vremenu, kao što su chatovi, vijesti i push obavijesti.
Node.js je dizajniran za rad na posvećenom HTTP poslužitelju i za upotrebu jedne niti s jednim procesom po jedinici vremena. Početak rada na Node.js temeljen je na događajima i radi se asinkrono. Kôd koji je izgrađen na ovoj platformi ne odgovara tradicionalnom načinu primanja, obrade, slanja, čekanja i primanja. Umjesto toga, čvor obradi dolazne zahtjeve u hrpi upornih događaja, šalje male zahtjeve jedan po jedan i ne čeka odgovore.
Node.JS novice knjige sadrže puno podataka o prijelazu iz osnovnih modela koji vode veće, složenije postupke i istovremeno izvode nekoliko niti. Svaki od njih očekuje svoj odgovor prije nego što krene dalje.
Pokreni Node.js - jаvascript
Čvor se temelji na jаvascriptu, stoga razumijevanje rada ove platforme je nemoguće bez obilaska JS-a. Pouke za početnike Node.js sadrže mnogo uvodnih informacija o programskom jeziku na kojem se ova platforma temelji. jаvascript je interpretirani programski jezik ili skripte iz Netscapea. Slično je sposobnostima Microsoft Visual Basic, Sun Tcl, Perl iz UNIX-a i REXX-a tvrtke IBM. jаvascript skriptni jezici lakše su i brže kodirani nego strukturirani i sastavljeni, poput C i C + +. Skriptni jezici obično traju dulje od sastavljenih skripti, ali su vrlo korisni za kratke programe.
jаvascript se koristi za izradu web stranica za obavljanje zadataka poput automatskog mijenjanja formatiranog datuma na web stranici. To je razlog zašto će povezana stranica biti prikazana u skočnom prozoru.
Ako promijenite tekst ili grafički prikaz jаvascripta koristi iste ideje kao u Java (programiranje sastaviti objektno-orijentirani, derivat C ++).
Karakteristične značajke JS
jаvascript se obično koristi u razvoju web stranica. Izvorno je razvio Netscape kao alat za dodavanje dinamičnih i interaktivnih elemenata na web stranice. Iako jаvascript ovisi o Javi, sintaksa je sličnija C, a temelji se na ECMAScriptu, jeziku skriptiranja koji je razvio Sun Microsystems.
jаvascript je skriptni jezik na strani klijenta. To znači da izvorni kod obrađuje klijentski web preglednik, a ne web poslužitelj. Funkcije se mogu pokrenuti nakon učitavanja web stranice bez komuniciranja s poslužiteljem. Na primjer, funkcija jаvascript može provjeriti web obrazac prije slanja kako bi se osiguralo ispunjavanje svih potrebnih polja. Kôd može dati poruku o pogrešci prije nego što se bilo koji podaci prenesu na poslužitelj.
Kao i na strani poslužitelja skriptnih jezika, kao što su PHP i ASP, jаvascript kôd može se postaviti bilo gdje u HTML stranici na webu. Međutim, u HTML-u prikazuje se samo izlazni kod poslužitelja, a jаvascript kôd ostaje potpuno vidljiv u izvoru web stranice. Također se može pronaći u zasebnoj .JS datoteci, koja se također može vidjeti u pregledniku.
Primjer koda
Slijedi primjer osnovne jаvascript funkcije koja dodaje dva broja. Funkcija se zove s parametrima 7 i 11. Ako je sljedeći kod uključen u HTML web stranice, u polju upozorenja prikazao je tekst "18".
Značajke jаvascript možete nazvati u oznakama
Prednosti i važne nijanse
Jedna od glavnih prednosti Node.js, prema njegovom kreatoru Ryan Dahl, jest da ne blokira I / O (I / O). Neki programeri vrlo su kritični za Node.js i imajte na umu da ako jedan proces zahtijeva značajan broj ciklusa procesora, aplikacija je blokirana. To može uzrokovati kvar. Podržavatelji modela Node.js tvrde da je vrijeme obrade procesora manje od brige zbog velikog broja malih procesa na kojima se temelji kôd web mjesta.
Popularnost jаvascriptovih aplikacija je u zadnjih nekoliko godina blistava, a Node.js svakako pridonosi tom rastu. Ako pogledamo statistiku, vidjet ćemo da postoji više paketa čvora na svijetu od sličnih Ruby podataka. Drugi faktor: čvorovi paketa rasti brže od Ruby, Python i Java.
Što ga čini više popularnim od Rails i drugih alternativa Node.JS? Kako započeti studij? Sam čvor je asinkronna platforma temeljena na događajima, izgrađenoj na temelju jаvascript jаvascript motora i dizajnirana za stvaranje skalabilnih mrežnih aplikacija. Drugim riječima, Node.js je jаvascript plus C / C ++ zajedno sa datotečnim sustavom, koji pokreće HTTP ili TCP poslužitelje.
Čvor je jednoznamenkast i koristi model konkurencije koji se temelji na petlji događaja. Ne blokira procese i ne uzrokuje da program čeka, ali registrira povratni poziv i omogućuje aplikaciji da nastavi raditi. To znači da platforma može obraditi paralelne operacije bez višestrukih niti za izvršenje i učinkovite skale.
Postoje velike razlike između uzastopnih jezika i Node.js:
Čvor omogućuje izvršavanje drugih zadataka, čekajući obavijest kada je odgovor dostupan;
Aplikacija ne puše podatke u memoriju, već ih umnožava fragmentirano.
Iako postoje drugi sustavi petlje događaja (na primjer, knjižnica EventMachine u Ruby ili Twisted u Pythonu), postoji značajna razlika između njih i čvora.
U Node.JS, sve su knjižnice dizajnirane od temelja da ne blokiraju, što se ne može reći o drugima.
Koristite slučajeve
Čvor je idealan za aplikacije s I / O vezom, ali nije tako dobro za aplikacije s teškim procesorom. Odličan su primjer aplikacija u stvarnom vremenu (DIRT), jednoslojni, JSON API-ji i aplikacije za streaming podataka.
Službeni paket upravitelja čvorova (NPM)
Čvor duguje velik dio svog uspjeha upravitelju paketa koji dolazi s njim. Prednosti ovog alata:
uspostavlja ovisnost o aplikacijama na lokalnoj razini, a ne na globalnoj razini;
Istovremeno, obrađuje nekoliko verzija istog modula;
možete odrediti tarballs ili git repositories kao ovisnosti;
Vrlo je lako objaviti svoj modul u NPM registru.
Instaliranje Node.js
Za početnike postoje službeni instalaci za čvor u sustavu Windows i OS X, a možete i instalirati putem Upravitelja paketa. Da biste testirali korisnički kôd s različitim verzijama čvorova, upotrijebite NVM (Node za upravljanje verzijama).
Pomoću ovog alata možete koristiti nekoliko verzija čvora instalirane u sustavu i jednostavno ih prebacivati. U sljedećih nekoliko redaka vidjet ćemo kako instalirati NVM u Ubuntu sustav.
Prvo, moramo osigurati da naš sustav ima C + + prevodilac:
$ sudo apt-get ažuriranje
$ sudo apt-get instalirajte build-essential libssl-dev
Nakon toga možemo kopirati i zalijepiti instalacijski program jednog linera za NVM u terminal:
$ curl https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | hit
NVM mora biti ispravno instaliran, tako da se odjavimo i prijavimo kako bismo bili sigurni da je sve u redu. Unesite naredbu:
$ nvm
Ako se tijekom unosa ne pojavi pogreška, to znači da je sve u redu. Sada možemo nastaviti do stvarnog uspostavljanja čvora i NPM-a.
Rezultat na naredbi trebao bi izgledati ovako:
$ nvm instalirajte v0.10.31
################################################## 100,0% ################
Sada bi oba čvora i npm trebali biti dostupni na terminalu:
$ čvor -v amp- amp- amp-npm -v
v0.10.31
1.4.23
Sada morate konfigurirati Node.JS da po defaultu počne s naredbom na terminalu:
$ nvm alias zadano 0.10.31
Možemo instalirati druge verzije čvora kao i prije, ali se prebacujemo između njih pomoću nvm use naredbe:
$ nvm instalirajte v0.8.10
Ako ne znate koje verzije su instalirane na vašem sustavu, jednostavno upišite nvm-popis. Ovaj alat će vam pokazati potpuni popis, kao i trenutne i zadane verzije, na primjer:
popis $ nvm
v0.6.3 v0.6.12 v0.6.14 v0.6.19 v0.7.7 v0.7.8 v0.7.9 v0.8.6 v0.8.11 v0.10.3 v0.10.12 v0.10.15 v0.10.21 v0.10.24 v0.11.9 struja: v0.10.24 zadano -> v0.10.24
moduli
U Node.JS primer Java ili Python propisanom uporabu uvoz značajka za učitavanje drugim knjižnicama, a uporaba PHP i Ruby to ne zahtijevaju. Čvor implementira CommonJS sučelje za module. Također možete učitati ostale varijante pomoću ključne riječi koja zahtijeva.
Na primjer, možda će nam trebati neki od naših vlastitih modula:
var http = zahtijevaju (`http`);
var dns = zahtijevaju (`dns`);
Također možemo nazvati relativne datoteke:
var myFile = zahtijevati (`./ myFile`) - // download myFile.js
Da biste instalirali module iz NPM, pretražite ih na web mjestu ili u Githubu. Sintaksa za instalaciju modula na lokalnoj razini je vrlo jednostavna:
# gdje izraz === naziv modula
$ npm instaliraj izraz
povratni pozivi
U asinkronom programiranju ne vraćamo vrijednosti kada se izvršavaju funkcije, već koristimo stil kontinuiranog (CPS). Uz ovaj stil, asinkrona funkcija naziva povratni poziv (funkcija koja je normalno prošla kao posljednji argument) da bi se program nastavio nakon dovršetka.
Slijedi primjer pronalaženja IPv4 adresa za domenu:
var dns = zahtijevaju (`dns`);
dns.resolve4 (`google.com`, funkcija (err, adrese) {
ako je (pogrešno) bacanje pogrešno;
console.log (`adrese:` + JSON.stringify (adrese));
});
Preusmjerili smo povratni poziv (ugrađena anonimna funkcija) kao drugi argument za asinkroni dns.resolve4. Nakon što je funkcija asinkcije spremna, nazvat će poziv, nastavljajući izvršavanje programa.
događaji
Vodič za početnike Node.JS uvodi standardni uzorak povratnog poziva koji dobro funkcionira u slučajevima kada želimo primati obavijesti kada funkcija asinkronizacije završava. Međutim, postoje situacije koje zahtijevaju obavještavanje o različitim događajima koji se ne pojavljuju istodobno.
Pogledajmo ovo s primjerom koda s IRC klijentom:
var irc = zahtijevaju (`irc`);
var client = novi irc.Client (`irc.freenode.net`, `myIrcBot`, {
kanali: [`# sample-channel`]
});
client.on (`error`, funkcija (poruka) {
console.error (`error:`, poruka);
});
client.on (`connect`, funkcija () {
console.log ("spojen na IRC poslužitelj");
});
client.on (`message`, funkcija (od, do poruke) {
console.log (od + `=>` + do + `:` + poruka);
});
client.on (`pm`, funkcija (od, poruka) {
console.log (od + `=> ME: + poruka);
}).
U gore navedenom primjeru, imamo tri vrste događaja:
događaj povezivanja se izdaje kada se klijent uspješno spoji na IRC poslužitelj;
događaj greške pokreće se ako dođe do pogreške;
poruke i događaji u tijeku su odabrani za dolazne poruke.
Gore navedeni događaji čine ovu situaciju idealnom za korištenje predloška EventEmitter.
Predložak EventEmitter omogućuje razvojnim programerima da puste događaj koji se korisnici mogu pretplatiti, ako ih zanima. Ovaj predložak može biti upoznat s preglednikom, gdje se koristi za povezivanje poslužitelja događaja.
Čvor ima klase EventEmitter u kernelu koje možemo koristiti za stvaranje vlastitih objekata EventEmitter. Pokušajmo stvoriti MemoryWatcher klasu koja nasljeđuje EventEmitter i generira dvije vrste događaja:
podatke u redovitim razmacima, što predstavlja uporabu memorije u bajtovima;
događaj pogreške ako memorija premaši određenu granicu.
Dakle, čvor nije web poslužitelj, to je jedan od načina za stvaranje koda na računalu. To je okruženje za pokretanje jаvascripta.
Kako stvoriti vlastiti poslužitelj u "Agarion"? Jednostavan način
Što je jаvascript? Povijest izgleda i glavne značajke
jаvascript: primjeri primjene
Push / pop jаvascript Stack
Skriptni programski jezici: zadaci, značajke i prednosti
Funkcija upravljanja vremenom jаvascript setInterval ()
Upotreba DOM elemenata putem jаvascript getElementById
Upotreba jаvascript funkcije setTimeout ()
Kako omogućiti jаvascript u pregledniku Google Chrome i drugim preglednicima
Upotreba alata za jаvascript ()
Front end razvoj: ono što je ili kako napraviti živ i pametna stranica
Upravljanje znakovima: jаvascript metoda substring ()
Upotreba zamjenske zamjenske zamjene ()
Primjer jQuerya. Jednostavan primjeri skripti na jQuery
Kako pretvoriti string u broj u jаvascript
Značenje i upotreba jаvascript neispravnog
Kako omogućiti jаvascript u pregledniku Google Chrome i drugim preglednicima
Upotreba alata za jаvascript ()
Upravljanje znakovima: jаvascript metoda substring ()
Kako pretvoriti string u broj u jаvascript
Značenje i upotreba jаvascript neispravnog