Node.js za početnike: opis, vodič, značajke

Node.js je javascript implementacijsko okruženje ugrađeno u verziju JS V8 motora iz Chromea. Node.js platforma za početnike koristi upravljane događaje, ne blokira I /O model, što ga čini jednostavnim i učinkovitim. Paketni ekosustav Node.js je najveći otvoreni ekosustav na svijetu. Projekt podržava Zaklada Node.js. Doprinosi, politike i pitanja prate se prema modelu otvorenog upravljanja.

Node.js za početnike: definicija

Node.js je razvojna platforma otvorenog koda za izvršavanje javascript koda na strani poslužitelja. Čvor je koristan za razvoj aplikacija koje zahtijevaju trajnu vezu od preglednika do poslužitelja. Često se koristi za aplikacije u stvarnom vremenu, kao što su chat, novosti i push poruke.



Node.js je dizajniran da radi na namjenskom HTTP poslužitelju i da koristi jedan tok s jednim procesom po jedinici vremena. Početak Node.js temelji se na događajima i izvodi se asinkrono. Kôd izgrađen na ovoj platformi ne odgovara tradicionalnom obrascu primanja, obrade, slanja, čekanja i primanja. Umjesto toga, čvor tretira dolazne zahtjeve u stog konstantnih događaja, šalje male zahtjeve jednu po jednu i ne prima odgovore. Node.JS Knjige za početnike sadrže mnogo podataka o prijelazu iz osnovnih modela koji pokreću veće, složene procese i istovremeno pokreću više niti. Svatko od njih čeka svoj odgovor prijenastavite dalje.


Početak Node.js - javascript

Čvor temelji se na javascriptu, tako da je razumijevanje rada ove platforme nemoguće bez izleta u JS. Node.js za početnike daje vam mnogo uvodnih informacija o programskom jeziku na kojem se temelji ova platforma. javascript - ovo se tumači u Microsoftovom programskom jeziku ili skriptama iz Netscapea. To je slično mogućnostima Microsoft Visual Basic, Sun Tcl, Perl iz UNIX-a i REXX-a od IBM-a. JavaScript skriptni jezici lakše su i brže kodirati nego što su strukturirani i kompilirani, kao što su C i C ++. Skriptni jezici obično traju dulje od kompilacije, ali su vrlo korisni za kratke programe. javascript se koristi za izradu web-mjesta za izvršavanje zadataka kao što je automatsko mijenjanje formatiranog datuma na web-stranici. To je razlog zbog kojeg će se povezana stranica prikazati u skočnom prozoru. Kada mijenjate tekstualnu ili grafičku sliku, javascript koristi iste ideje kao i Java (sastavljeno objektno orijentirano programiranje, izvedeno iz C ++-a).

Karakteristične značajke JS

javascripta obično se koriste u razvoju weba. Izvorno ga je razvila tvrtka Netscape kao alat za dodavanje dinamičkih i interaktivnih elemenata na web-mjesta. Iako je javascript ovisan o Javi, sintaksa je sličnija C i temelji se na ECMAScript, skriptnom jeziku koji je razvio Sun Microsystems. javascript je skriptni jezik na strani klijenta. To znači da izvorni kôd upravlja web-preglednikom klijenta, a ne web-poslužiteljem. Funkcije se mogu pokrenuti nakon preuzimanja web-stranice bez kontaktiranja poslužitelja.Primjerice, funkcija javascript može provjeriti web-obrazac prije slanja kako bi provjerila jesu li sva potrebna polja puna. Kôd može izdati poruku o pogrešci prije nego se bilo koja informacija doista prenese na poslužitelj.
Slično kao i poslužiteljski skriptni jezici, kao što su PHP i ASP, javascript kod se može umetnuti bilo gdje na HTML stranici na webu. Međutim, HTML prikazuje samo izlazni kod poslužitelja, a javascript kôd ostaje potpuno vidljiv u izvoru web stranice. Također se može naći u zasebnoj .JS datoteci koja se može pregledati u pregledniku.

Primer koda

Ispod je primjer osnovne funkcije javascripta, koja dodaje dva broja. Funkcija se poziva s parametrima 7 i 11. Ako je donji kod uključen u HTML web stranice, u polju upozorenja prikazan je tekst "18". Funkcije javascripta mogu se zvati u oznakama Popularnost javascripta aplikacija brzo raste u posljednjih nekoliko godina, a Node.js svakako doprinosi tom rastu. Ako pogledamo statistiku, vidjet ćemo da na svijetu ima više Node paketa nego Ruby sličnih podataka. Drugi čimbenik: čvorni paketi rastu brže od Ruby, Python i Java. Što ga čini popularnijim od Railsa i drugih alternativa Node.JS? Gdje početi studij? Sam čvor je asinkrona platforma temeljena na događaju izgrađenom na temelju Chrome enginea i dizajniranog za stvaranje skalabilnih mrežnih aplikacija. Drugim riječima, Node.js je javascript plus C /C ++ zajedno s datotečnim sustavom, pokretanjem HTTP ili TCP poslužitelja. Čvor je jednostruki i koristi model paralelizma temeljen na ciklusudogađanja. Ne blokira procese i ne prisiljava program da čeka, već registrira povratni poziv i dopušta aplikaciji da nastavi s radom. To znači da platforma može upravljati paralelnim operacijama bez višestrukih niti i učinkovito se povećava. Postoje značajne razlike između uzastopnih jezika i Node.js:
  • Čvor vam omogućuje obavljanje drugih zadataka koji čekaju poruku kada je odgovor dostupan;
  • aplikacija ne sprema podatke u memoriju, već ih prikazuje fragmentarno.
  • Iako postoje druge petlje sistemskih događaja (na primjer, knjižnica EventMachine u Ruby ili Twisted na Pythonu), postoji značajna razlika između njih i Node. U Node.JS-u sve su knjižnice dizajnirane od nule kako bi bile neblokirane, što se ne može reći za druge.

    Mogućnosti korištenja

    Čvor je idealno prikladan za aplikacije s I /O vezom, ali ne toliko dobre za aplikacije s teškim procesorom. Izvrstan primjer su aplikacije u stvarnom vremenu (DIRT), jednostruke stranice, JSON API-ji i streaming aplikacije.

    Node (NPM)

    Node službeni paketni upravitelj odgovoran je za većinu svog uspjeha s upraviteljem paketa koji dolazi s njim. Prednosti ovog alata:
  • postavlja ovisnosti aplikacija lokalno, a ne globalno;
  • istovremeno obrađuje nekoliko verzija istog modula;
  • Možete odrediti tarballs ili git repozitorije kao zavisnosti;
  • Vrlo je lako objaviti vlastiti modul u NPM registru.
  • Instaliranje Node.js

    Za početnike postoje službeniInstalateri za čvor na Windowsima i OS X-u također su omogućili instalaciju putem upravitelja paketa. Za testiranje korisničkog koda s različitim verzijama čvorova, koristi se NVM (Node Version Manager). Pomoću ovog alata možete koristiti više verzija web-lokacije instalirane na sustavu i jednostavno se prebacivati ​​između njih. U sljedećih nekoliko redaka vidjet ćemo kako instalirati NVM u Ubuntu.
    Prvo, moramo se pobrinuti da naš sustav ima C ++ prevodilac: $ sudo apt-get update $ sudo apt-get instalacija build-essential libssl-dev Nakon što kopiramo i zalijepimo instalaciju za NVM u jednom terminalu u terminal : $ curl https://raw.githubusercontent.com/creationix/nvm/v0131/install.sh | hit NVM mora biti ispravno instaliran, tako da izlazimo iz sustava i autuniziramo se kako bismo bili sigurni da je sve ispravno. Unesite naredbu: $ nvm Ako nema pogrešaka pri ulasku, to znači da je sve u redu. Sada možemo otići na stvarnu instalaciju čvora i NPM-a. Rezultat u naredbenom retku trebao bi izgledati ovako: $ nvm install v01031 ##################################### ############################# 1000% Sada oba terminala i npm moraju biti dostupni u terminalu: $ node -v & amp; & amp; & amp; npm -v v01031 1423 Sada trebate konfigurirati Node.JS po defaultu s naredbom u terminalu: $ nvm alias default 01031 Možemo instalirati druge verzije Nodea kao prije i prebacivati ​​se između njih koristeći naredbu nvm use: $ nvm install v0810 Ako ne znate koje su verzije instalirane na vašem sustavu, samo upišite nvm-list. Ovaj alat prikazat će vam potpuni popis, kao i trenutne i verzije, na primjer: popis $ nvm v063 v0612 v0614 v0619 v077 v078 v079 v086 v0811v0103 v01012 v01015 v01021 v01024 v0119 struja: v01024 default - & gt; v01024

    Moduli

    Vodič Node.JS za početnike Java ili Python predlaže korištenje značajke uvoza za preuzimanje drugih knjižnica, dok PHP i Ruby to ne zahtijevaju. Čvor implementira CommonJS sučelje za module. Ostale varijacije možete preuzeti i pomoću ključne riječi require. Na primjer, možda će nam trebati neki od naših vlastitih modula: var http = require ('http'); može dns = require ('dns'); Također možemo nazvati relativne datoteke: var myFile = require ('./myFile'); //download myFile.js Da biste instalirali NPM module, potražite ih na web-mjestu ili u Github-u. Sintaksa za lokalno instaliranje modula je vrlo jednostavna: # gdje je izražen === ime modula $ npm instaliraj express

    Callback

    U asinkronom programiranju ne vraćamo vrijednost kada se funkcije izvode, već umjesto toga koristimo način za nastavak prolaza (CPS). S ovim stilom, asinkrona funkcija poziva povratni poziv (funkcija se obično prosljeđuje kao posljednji argument) za nastavak programa nakon dovršetka. U nastavku je primjer pronalaženja IPv4 adrese za domenu: var dns = require ('dns'); dns.resolve4 ('www.google.com', funkcija (err, address) {if (err) throw err; console.log ('adrese:' + JSON.stringify (adrese)};}); Prošli smo povratni poziv (ugrađena anonimna funkcija) kao drugi asinkroni argument dns.resolve4. Nakon što je funkcija asinhronizacije spremna, pozvat će ga nastavkom izvođenja programa.

    Događaji

    U Vodiču za početnike, Node.JS pruža standardni predložak povratnog poziva koji dobro funkcioniraslučajeva kada želimo primati poruke kada je asinkrona funkcija dovršena. Međutim, postoje situacije koje zahtijevaju obavještavanje o različitim događajima koji se događaju istovremeno. Pogledajmo ovaj primjer koda s IRC klijentom: var irc = require ('irc'); može klijent = novo irc.Client ('irc.freenode.net', 'myIrcBot', {channels: ['# sample-channel']}); client.on ('pogreška', funkcija (poruka) {console.error ('pogreška:', poruka);}); client.on ('connect', function () {console.log ("spojen na irc poslužitelj");}); client.on ('poruka', funkcija (od, do, poruka) {console.log (od + '= & gt;' + do + ':' + poruka);}); client.on ('pm', funkcija (iz, poruka) {console.log (od + '= & gt; ME: + poruka);}).
    U gornjem primjeru, bavimo se trima vrstama događaja:
  • događaj veze se izdaje kada se klijent uspješno spaja na IRC poslužitelj;
  • događaj pogreške se pokreće u slučaju pogreške;
  • poruke i događaji su odabrani za dolazne poruke.
  • Gore navedeni događaji čine ovu situaciju idealnom za korištenje predložka EventEmitter. Predložak EventEmitter omogućuje programerima da oslobode događaj na koji se korisnici mogu pretplatiti ako su zainteresirani. Ovaj predložak može biti upoznat s preglednikom, gdje se koristi za pridruživanje rukovateljima događajima. Čvor ima klasu EventEmitter u kernelu koju možemo koristiti za stvaranje vlastitih EventEmitter objekata. Pokušajmo stvoriti klasu MemoryWatcher koja nasljeđuje EventEmitter i generira dvije vrste događaja:
  • podatke o redovitim intervalima koji predstavljaju upotrebu memorije u bajtovima;
  • događaj pogreške ako memorija prelazi određenu granicu.
  • Dakle, Node nije web poslužitelj, nego jedan od načina za stvaranje kodaračunalo. To je okruženje za izvršavanje javascripta.

    Povezane publikacije