Node.js za začetnike: opis, vodnik, funkcije

Node.js je okolje za implementacijo javascripta, vgrajeno v različico JS V8 motorja iz Chroma. Platforma Node.js za začetnike uporablja upravljane dogodke, ne blokira I /O modela, zaradi česar je enostavna in učinkovita. Paketni ekosistem Node.js je največji odprtokodni ekosistem na svetu. Projekt podpira fundacija Node.js. Prispevki, politike in vprašanja se spremljajo v okviru odprtega modela upravljanja.

Node.js za začetnike: definicija

Node.js je razvojna platforma odprte kode za izvajanje javascript kode na strani strežnika. Vozlišče je uporabno za razvoj aplikacij, ki zahtevajo trajno povezavo med brskalnikom in strežnikom. Pogosto se uporablja za aplikacije v realnem času, kot so klepet, novice in potisna sporočila.



Node.js je zasnovan za delo na namenskem strežniku HTTP in uporabo enega toka z enim postopkom na časovno enoto. Začetek Node.js temelji na dogodkih in se izvaja asinhrono. Koda, zgrajena na tej platformi, se ne ujema s tradicionalnim vzorcem sprejemanja, obdelave, pošiljanja, čakanja in prejemanja. Namesto tega vozlišče obravnava dohodne zahteve v nizu stalnih dogodkov, pošilja majhne zahteve enega za drugim in ne prejme odgovorov. Node.JS Knjige za začetnike vsebujejo veliko podatkov o prehodu iz osnovnih modelov, ki poganjajo večje, kompleksne procese in hkrati vodijo več niti. Vsak od njih že čaka na svoj odgovornadaljujte.


Začetek Node.js - javascript

Node temelji na javascriptu, zato je razumevanje dela te platforme nemogoče brez izleta v JS. Node.js za začetnike vam ponuja veliko uvodnih informacij o programskem jeziku, na katerem je temeljila ta platforma. javascript - to se razlaga v programskem jeziku Microsoft ali skriptih iz Netscapea. Podobno je zmožnostim Microsoft Visual Basic, Sun Tcl, Perl iz UNIX in REXX od IBM-a. JavaScript skriptni jeziki so lažje in hitreje kodirani kot bolj strukturirani in prevedeni, na primer C in C ++. Skriptni jeziki običajno trajajo dlje kot kompilacija, vendar so zelo koristni za kratke programe. javascript se uporablja za oblikovanje spletne strani za izvajanje nalog, kot je samodejno spreminjanje oblikovanega datuma na spletni strani. To je razlog, da bo povezana stran prikazana v pojavnem oknu. Pri spreminjanju besedilne ali grafične podobe javascript uporablja iste ideje kot Java (prevedeno objektno usmerjeno programiranje, izpeljano iz C ++).

Značilnosti JS

javascript se pogosto uporabljajo v razvoju spletnih strani. Prvotno ga je razvila družba Netscape kot orodje za dodajanje dinamičnih in interaktivnih elementov na spletna mesta. Čeprav je javascript odvisen od Java, je sintaksa bolj podobna C in temelji na ECMAScript, skriptnem jeziku, ki ga je razvil Sun Microsystems. javascript je skriptni jezik na strani odjemalca. To pomeni, da izvorno kodo upravlja spletni brskalnik, ne spletni strežnik. Funkcije se lahko zaženejo po prenosu spletne strani, ne da bi se obrnili na strežnik.Na primer, funkcija javascript lahko preveri spletni obrazec, preden ga pošlje, da se prepriča, ali so vsa zahtevana polja polna. Koda lahko izda sporočilo o napaki, preden se katera koli informacija dejansko pošlje v strežnik.
Podobno kot strežniški skriptni jeziki, kot sta PHP in ASP, lahko javascript kodo vstavite kjerkoli na strani HTML v spletu. Vendar pa HTML prikaže samo izhodno kodo strežnika, javascript koda pa ostane popolnoma vidna v viru spletne strani. Najdete ga lahko tudi v ločeni datoteki .JS, ki jo lahko pregledate v brskalniku.

Primerna koda

Spodaj je primer osnovne funkcije javascript, ki dodaja dve številki. Funkcija se kliče s parametri 7 in 11. Če je spodnja koda vključena v HTML spletne strani, je v polju opozorila prikazano besedilo "18". Javascript funkcije se lahko kličejo po oznakah Priljubljenost Javascriptov aplikacij se je v zadnjih letih hitro povečevala, in Node.js zagotovo prispeva k tej rasti. Če pogledamo statistične podatke, bomo videli, da je na svetu več paketov Node kot Ruby podobni podatki. Drugi dejavnik: paketi vozlišč rastejo hitreje kot Ruby, Python in Java. Kaj ga naredi bolj priljubljeno kot Rails in druge alternative za Node.JS? Kje začeti študijo? Samo vozlišče je asinhrona platforma, ki temelji na dogodku, zgrajenem na osnovi mehanizma za zagon javascripta in namenjenega ustvarjanju prilagodljivih omrežnih aplikacij. Z drugimi besedami, Node.js je javascript in C /C ++ v povezavi z datotečnim sistemom, zagonom strežnikov HTTP ali TCP. Vozlišče je eno-navojno in uporablja vzporedni model na osnovi ciklovdogodkov. Ne blokira procesov in ne prisili programa, da bi čakal, ampak registrira povratni klic in aplikaciji omogoča nadaljevanje dela. To pomeni, da lahko platforma obravnava vzporedne operacije brez več niti in se učinkovito poveča. Med zaporednimi jeziki in Node.js obstajajo pomembne razlike:
  • Vozlišče vam omogoča izvajanje drugih nalog, ki čakajo na sporočilo, ko je odgovor na voljo;
  • aplikacija ne shrani podatkov v pomnilnik, temveč jo prikaže fragmentarno.
  • Čeprav obstajajo druge zanke sistemskih dogodkov (na primer knjižnica EventMachine v Ruby ali Twisted on Python), je med njimi in Node velika razlika. V Node.JS so bile vse knjižnice oblikovane iz nič, da bi bile neblokalne, kar ni mogoče reči za druge.

    Možnosti uporabe

    Vozlišče je idealno primerno za aplikacije z V /I vezavo, vendar ne tako dobro za aplikacije s težkim procesorjem. Odličen primer so aplikacije v realnem času (DIRT), enostranske aplikacije, API-ji JSON in pretočne aplikacije.

    Uradni paketni upravitelj vozlišča (NPM)

    je odgovoren za večino svojega uspeha pri upravitelju paketov, ki ga dobite skupaj z njim. Prednosti tega orodja:
  • določa odvisnosti aplikacij lokalno, ne globalno;
  • hkrati obdeluje več različic istega modula;
  • Kot odvisnosti lahko določite tarball ali git repozitoriji;
  • Zelo enostavno je objaviti svoj modul v registru NPM.
  • Namestitev Node.js

    Za začetnike obstajajo uradniInštalaterji za vozlišče v operacijskem sistemu Windows in OS X so zagotovili tudi možnost namestitve prek upravitelja paketov. Za testiranje uporabniške kode z različnimi različicami vozlišča se uporablja NVM (Node Version Manager). S tem orodjem lahko uporabite več različic mesta, nameščenih v sistemu, in preprosto preklapljate med njimi. V naslednjih nekaj vrsticah bomo videli, kako namestiti NVM v Ubuntu.
    Najprej se moramo prepričati, da ima naš sistem prevajalnik C ++: $ sudo apt-get posodobitev $ sudo apt-get install build-essential libssl-dev Ko lahko kopiramo in prilepimo enostopenjski namestitveni program za NVM v terminal : $ curl https://raw.githubusercontent.com/creationix/nvm/v0131/install.sh | zadeti NVM mora biti pravilno nameščen, zato zapustimo sistem in se samodejno potrdimo, da se prepričamo, da je vse pravilno. Vnesite ukaz: $ nvm Če pri vnosu ni napak, to pomeni, da je vse v redu. Zdaj lahko gremo na dejansko namestitev Node in NPM. Rezultat v ukazni vrstici mora izgledati takole: $ nvm install v01031 ##################################### ############################# 1000% Zdaj morajo biti v terminalu na voljo oba vozlišča in npm: $ node -v & amp; & amp; & amp; npm -v v01031 1423 Zdaj morate konfigurirati Node.JS, da se privzeto zažene z ukazom v terminalu: $ nvm alias default 01031 Lahko namestimo druge različice Node kot prej in preklopimo med njima z ukazom nvm use: $ nvm install v0810 Če ne veste, katere različice so nameščene v sistemu, vtipkajte nvm-list. To orodje vam bo prikazalo celoten seznam, pa tudi trenutne in različice, na primer: seznam $ nvm v063 v0612 v0614 v0619 v077 v078 v079 v086 v0811v0103 v01012 v01015 v01021 v01024 v0119 trenutno: v01024 privzeto - & gt; v01024

    Moduli

    Vadnica Node.JS za začetnike Java ali Python predlaga uporabo funkcije uvoza za prenos drugih knjižnic, medtem ko PHP in Ruby tega ne zahtevata. Node izvaja vmesnik CommonJS za module. Druge različice lahko prenesete tudi s ključno besedo require. Na primer, morda potrebujemo nekaj lastnih modulov: var http = require ('http'); lahko dns = require ('dns'); Lahko tudi pokličemo relativne datoteke: var myFile = require ('./myFile'); //download myFile.js Če želite namestiti module NPM, jih poiščite na spletni strani ali v Githubu. Sintaksa za lokalno namestitev modula je preprosta: # kjer je izraz === ime modula $ npm install express

    Povratni klic

    V asinhronem programiranju ne vrnemo vrednosti, ko se funkcije izvajajo, ampak uporabimo način za nadaljevanje prehoda (CPS). S tem slogom asinhrona funkcija pokliče povratni klic (funkcija se običajno posreduje kot zadnji argument), da se program nadaljuje po zaključku. Spodaj je primer iskanja naslova IPv4 za domeno: var dns = require ('dns'); dns.resolve4 ('www.google.com', funkcija (napaka, naslovi) {if (err) throw err; console.log ('naslovi:' + JSON.stringify (naslovi)};}); Prešli smo povratni klic (vgrajena anonimna funkcija) kot drugi asinhroni argument dns.resolve4. Ko je funkcija async pripravljena, bo preklicala z nadaljevanjem izvajanja programa.

    Dogodki

    V Priročniku za začetek uporabe Node.JS ponuja standardno predlogo za povratni klic, ki dobro delujeprimeri uporabe, ko želimo prejemati sporočila, ko je asinhrona funkcija zaključena. Vendar pa obstajajo situacije, ki zahtevajo obveščanje o različnih dogodkih, ki se zgodijo hkrati. Oglejmo si primer te kode z IRC odjemalcem: var irc = require ('irc'); lahko client = novo irc.Client ('irc.freenode.net', 'myIrcBot', {channels: ['# sample-channel']})); client.on ('napaka', funkcija (sporočilo) {console.error ('napaka:', sporočilo);}); client.on ('connect', function () {console.log ("povezan z irc strežnikom");}); client.on ('sporočilo', funkcija (od, do, sporočilo) {console.log (od + '= & gt;' + do + ':' + sporočilo);}); client.on ('pm', funkcija (iz, sporočilo) {console.log (od + '= & gt; ME: + sporočilo);}).
    V zgornjem primeru obravnavamo tri vrste dogodkov:
  • dogodek povezave se izda, ko se odjemalec uspešno poveže z IRC strežnikom;
  • se v primeru napake sproži napaka;
  • sporočil in dogodkov pm, izbranih za dohodna sporočila.
  • Zgoraj navedeni dogodki naredi to situacijo idealno za uporabo predloge EventEmitter. Predloga za EventEmitter omogoča razvijalcem, da sproščajo dogodek, na katerega se lahko naročijo uporabniki, če se zanjo zanima. Ta predloga je morda seznanjena z brskalnikom, kjer se uporablja za pridružitev obdelovalcem dogodkov. Vozlišče v jedru ima razred EventEmitter, ki ga lahko uporabimo za ustvarjanje lastnih objektov EventEmitter. Poskusimo ustvariti razred MemoryWatcher, ki podeduje EventEmitter in generira dve vrsti dogodkov:
  • podatke o regularnih intervalih, ki predstavljajo uporabo pomnilnika v bajtih;
  • Napaka, če pomnilnik preseže določeno mejo.
  • Torej Node ni spletni strežnik, ampak eden od načinov za ustvarjanje koderačunalnik To je okolje za izvajanje javascripta.

    Sorodne publikacije