Node.js pro začátečníky: popis, průvodce, funkce

Node.js je javascriptové implementační prostředí zabudované ve verzi JS V8 od Chrome. Platforma Node.js pro začátečníky využívá spravované události, nezabírá I /O model, což usnadňuje a efektivně. Přidaný ekosystém Node.js je největší open source ekosystém na světě. Projekt je podporován nadací Node.js. Příspěvky, zásady a problémy jsou sledovány v rámci otevřeného modelu řízení.

Node.js pro začátečníky: definice

Node.js je open source vývojová platforma pro provádění kódu javascript na straně serveru. Uzel je užitečný pro vývoj aplikací, které vyžadují trvalé připojení z prohlížeče k serveru. Často se používá pro aplikace v reálném čase, jako jsou chat, zprávy a push zprávy.



Node.js je navržen tak, aby pracoval na vyhrazeném HTTP serveru a využíval jeden stream s jedním procesem za jednotku času. Začátek Node.js je založen na událostech a je prováděn asynchronně. Kód vytvořený na této platformě neodpovídá tradičnímu způsobu přijímání, zpracování, odesílání, čekání a příjmu. Namísto toho uzel zpracovává příchozí požadavky v zásobě konstantních událostí, posílá malé žádosti jeden po druhém a neobdrží odpovědi. Node.JS Knihy pro začátečníky obsahují mnoho dat o přechodu ze základních modelů, které provozují větší, složitější procesy a současně spouštějí více podprocesů. Každý z nich čeká na svou příslušnou odpověď dřívepřesunout dál.


Začátek Node.js - javascript

Uzel je založen na javascriptu, takže pochopení práce této platformy je nemožné bez excursus v JS. Node.js pro začátečníky vám poskytne mnoho úvodních informací o programovacím jazyce, na kterém je tato platforma založena. javascript - je interpretován v programovacím jazyce Microsoft nebo v skriptech Netscape. Je to podobná schopnosti Microsoft Visual Basic, Sun Tcl, Perl z UNIXu a REXX od IBM. Jazykové skriptovací jazyky jazyka JavaScript jsou jednodušší a rychlejší k kódování, než strukturovanější a kompilované, například C a C ++. Skriptovací jazyky obvykle trvají déle než kompilace, ale jsou velmi užitečné pro krátké programy. javascript použity k vytvoření webové stránky, plnit úkoly, jako je automatické datum změna formatyrovannoy na webových stránkách. To je důvod, proč se propojená stránka zobrazí v rozbalovacím okně. Chcete-li změnit text či grafiku javascript používá stejnou myšlenku jako v Javě (zkompilovaný objektově orientované programování, derivát C ++).

Charakteristické znaky JS

javascript se běžně používají při vývoji webových stránek. Původně byl vyvinut Netscape jako nástroj pro přidávání dynamických a interaktivních prvků do webových stránek. Ačkoli javascript závisí na jazyce Java, syntaxe je více podobná C a je založena na ECMAScriptu, skriptovacím jazyce vyvinutém společností Sun Microsystems. javascript je skriptovací jazyk na straně klienta. To znamená, že zdrojový kód zpracovává webový prohlížeč klienta, nikoli webový server. Funkce mohou začít po stažení webových stránek bez kontaktování serveru.Funkce javascript může například zkontrolovat webový formulář před jeho odesláním, aby se ujistil, že všechna povinná pole jsou plná. Kód může vydávat chybovou zprávu předtím, než jsou informace skutečně přeneseny na server.
Stejně jako serverové skriptovací jazyky, jako PHP a ASP, může být javascript kód vložen kdekoli na HTML stránce na webu. Však HTML zobrazuje pouze výstup kódu serveru a javascript kód zůstává plně viditelný ve zdroji webové stránky. Může být také nalezen v samostatném souboru .JS, který lze prohlížet v prohlížeči.

Kód vzorku

Níže je uveden příklad základní funkce javascript, která přidává dvě čísla. Funkce se nazývá parametry 7 a 11. Pokud byl kód uvedený níže v HTML webové stránky, zobrazí se v poli varování text "18". javascript funkce lze volat ve značkách Popularita aplikací javascript rychle rostla v posledních několika letech a Node.js jistě přispívá k tomuto růstu. Pokud se podíváme na statistiky, pak uvidíme, že na světě existují další balíčky uzlů než podobné údaje Ruby. Druhý faktor: Balíky uzlu rostou rychleji než Ruby, Python a Java. Co dělá to více populární než Rails a další alternativy k Node.JS? Kde začít studium? Uzel samotný je asynchronní platforma založená na události postavené na základě javascript engine Chrome a navržená tak, aby vytvářely škálovatelné síťové aplikace. Jinými slovy, Node.js je javascript plus C /C ++ ve spojení se systémem souborů, spouštění HTTP nebo TCP serverů. Uzel je jednopilotní a používá model založený na cykluudálostí. Neblokuje procesy a nucuje program čekat, ale zaregistruje zpětné volání a umožňuje aplikaci pokračovat v práci. To znamená, že platforma dokáže pracovat s paralelními operacemi bez více závitů a je efektivně zvětšena. Existují značné rozdíly mezi po sobě jdoucími jazyky a Node.js:
  • Uzel umožňuje provádět další úlohy čekající na zprávu, když je odpověď k dispozici;
  • aplikace neupravuje data do paměti, ale zobrazí ji fragmentálně.
  • Přestože existují další smyčky událostí systému (například knihovna EventMachine v Ruby nebo Twisted on Python), mezi nimi a uzlem existuje značný rozdíl. V Node.JS byly všechny knihovny navrženy od nuly, aby nebyly zablokovatelné, což nelze říci o jiných.

    Možnosti využití

    Uzel je ideální pro aplikace s vazbou I /O, ale ne tak dobré pro aplikace s těžkým procesorem. Vynikajícím příkladem jsou aplikace v reálném čase (DIRT), jednostránkové rozhraní, JSON API a aplikace pro streamování.

    Uzel (NPM)

    Správce balíčků uzlu je zodpovědný za většinu svých úspěchů s manažerem balíčků, který je dodáván s ním. Výhody tohoto nástroje:
  • nastavuje závislost aplikací lokálně, ne globálně;
  • současně zpracovává několik verzí stejného modulu;
  • Můžete definovat tarballs nebo git repositories jako závislosti;
  • Je velmi snadné zveřejnit svůj vlastní modul v registru NPM.
  • Instalace Node.js

    Pro začátečníky jsou oficiálníInstalátory pro uzel v systémech Windows a OS X také umožnily instalaci prostřednictvím správce balíčků. Pro testování uživatelského kódu s různými verzemi uzlů se používá NVM (Správce verze uzlů). Pomocí tohoto nástroje můžete používat více verzí webu nainstalovaných v systému a snadno přepínat mezi nimi. V následujících několika řádcích uvidíme, jak nainstalovat NVM do Ubuntu.
    Za prvé, musíme zajistit, aby náš systém má kompilátor C ++: $ sudo apt-get update $ sudo apt-get install build-essential libssl-dev Kdy můžeme zkopírovat a vložit řádek instalační jediný pro terminálový NVM : $ curl https://raw.githubusercontent.com/creationix/nvm/v0131/install.sh | hit NVM musí být správně nainstalován, takže opustíme systém a autorunizujeme, abychom se ujistili, že je vše správné. Zadejte příkaz: $ nvm Pokud při zadávání nejsou žádné chyby, znamená to, že je vše v pořádku. Nyní můžeme jít do skutečné instalace uzlu a NPM. Výsledkem příkazového řádku by měl vypadat takto: $ nvm nainstalovat v01031 ##################################### ############# ################ 1000% Nyní oba uzel a NPM by měly být k dispozici v terminálu: $ uzlu -v & amp; & amp; & amp; NPM -v v01031 1423 Nyní je třeba nastavit výchozí Node.js začít s příkazem v terminálu: $ NVM alias standardně 01,031 můžeme instalovat jiné verze uzel, stejně jako předtím, a přepínat mezi nimi pomocí použití nvm: $ NVM install v0810 Pokud nevíte, které verze jsou nainstalovány ve vašem systému, stačí zadat nvm-list. Tento nástroj vám ukáže kompletní seznam, stejně jako proud a verzích, například: seznam $ nvm v063 v0612 v0614 v0619 v077 v078 v079 v086 v0811v0103 v01012 v01015 v01021 v01024 v0119 proud: v01024 výchozí - & gt; v01024

    moduly

    učebnice pro začátečníky Node.js Java nebo Python navrhuje použít funkce pro import pro načtení dalších knihoven, zatímco používání PHP a Ruby nevyžadují. Uzel CommonJS implementuje modul rozhraní. Zde si můžete stáhnout další verze pomocí klíčového slova vyžadují. Například můžeme potřebovat nějaké vlastní moduly: var http = require (‚http‘); var dns = vyžadovat ('DNS'); Také jsme schopni způsobit relativní soubory: var myfile = vyžadují ('./myFile'); //ke stažení myFile.js Pro instalaci modulů ze NPM, hledat své webové stránky nebo GitHub. Syntaxe pro místní instalace modulu je poměrně jednoduchý: #, kde express === module name $ NPM instalaci Express

    zpětných volání

    V asynchronním programování, nebudeme vracet hodnoty, když jsou spouštěné funkci, ale místo toho použít rozšíření průjezdu (CPS). Tento styl asynchronního callback funkce volání (funkce normálně předán jako poslední argument) pro pokračování programu po jeho dokončení. Zde je příklad vyhledání IPv4 adresy pro doménu: var dns = require (‚DNS‘); dns.resolve4 ('www.google.com', funkce (err, adresy) {if (err) hod err, console.log ('adresy:' + JSON.stringify (adresy));}); Minuli jsme zpětné volání (postavený anonymní funkce) jako druhý argument asynchronní dns.resolve4. Jakmile funkce asynchronní je připraven, bude volat zpět, pokračování programu.

    události

    Pokyny pro začátečníky Node.js ve standardním zpětné volání vzoru, který je vhodný propřípady použití, když chceme přijímat zprávy při dokončení asynchronní funkce. Existují však situace vyžadující upozornění na různé události, které se vyskytují současně. Podívejme se na tento příklad kód s IRC klientem: var irc = vyžadovat ('irc'); může klient = nový irc.Client ('irc.freenode.net', 'myIrcBot', {kanály: ['# sample-channel']}); client.on ('chyba', funkce (zpráva) {console.error ('chyba:', zpráva);}); client.on ('connect', funkce () {console.log ("připojen k irc serveru");}); client.on ('zpráva', funkce (od, do, zprávy) {console.log (od + '= +' do + ':' + message);}); client.on ('pm', funkce (z, zpráva) {console.log (od + '= & ME: + message);}).
    Ve výše uvedeném příkladu se zabýváme třemi typy událostí:
  • událost připojení se vydává, když se klient úspěšně připojí k IRC serveru;
  • v případě chyby se spustí událost o chybě;
  • zprávy a události pm vybrané pro příchozí zprávy.
  • Uvedené události činí tuto situaci ideální pro použití šablony EventEmitter. Šablona EventEmitter umožňuje vývojářům uvolnit událost, na kterou se mohou zákazníci přihlásit, pokud o ně mají zájem. Tato šablona může být obeznámená s prohlížečem, kde se používá pro připojení obslužných programů událostí. Uzel má třídu EventEmitter v jádře, kterou můžeme použít k vytvoření vlastních objektů EventEmitter. Pokusíme se vytvořit třídu MemoryWatcher, která dědí událost EventEmitter, a vygeneruje dva typy událostí:
  • pravidelná data intervalu reprezentující využití paměti v bajtech;
  • chybová událost, pokud paměť překročí určitý limit.
  • Takže uzel není webový server, ale jeden ze způsobů vytvoření kódupočítače Je to prostředí pro provádění javascriptu.

    Související publikace