Node.js pro začátečníky: popis, manuál, funkce
Node.js je stroj typu runtime jаvascript zabudovaný do verze JS V8 od Chrome. Platforma Node.js pro začátečníky využívá neblokující model I / O založený na událostech, který usnadňuje a zjednodušuje práci. Paketový ekosystém Node.js je největším ekosystémem otevřených knihoven na světě. Projekt podporuje Node.js. Příspěvky, zásady a problémy jsou řízeny v rámci modelu otevřeného řízení.
Obsah
Node.js pro začátečníky: definice
Node.js je open source vývojová platforma pro spouštění jazyka jаvascript 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 je chat, news feeds a push notifications.
Node.js je navržen tak, aby pracoval na vyhrazeném HTTP serveru a používal jeden podproces s jedním procesem na jednu časovou jednotku. Začínáme s aplikací Node.js je založeno na událostech a běží asynchronně. Kód vytvořený na této platformě neodpovídá tradičnímu modelu 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ásobníku trvalých událostí, posílá malé žádosti jeden po druhém a nečeká na odpovědi.
Node.JS novice knihy obsahují spoustu dat o přechodu od základních modelů, které běží větší, složitější procesy a současně běží několik závitů. Každá z nich čeká na příslušnou odpověď, než bude pokračovat.
Spusťte Node.js - jаvascript
Uzel je založen na jazyce jаvascript, takže pochopení práce této platformy je nemožné bez prohlídky JS. Výuka pro začátečníky Node.js obsahuje mnoho úvodních informací o programovacím jazyce, na kterém byla platforma založena. jаvascript je interpretovaný programovací jazyk nebo skripty z Netscape. Je to podobně jako funkce Microsoft Visual Basic, Sun Tcl, Perl z UNIXu a REXX od IBM. Jazykové skriptovací jazyky jazyka jаvascript jsou jednodušší a rychlejší k kódování než ke strukturovanějším a kompilovanějším, jako jsou C a C ++. Jazyky skriptů obvykle trvají déle než kompilované skripty, ale jsou velmi užitečné pro krátké programy.
jаvascript je používán při vývoji webových stránek pro provádění úkolů, jako je automatická změna formátovaného data na webové stránce. To je důvod, proč se propojená stránka zobrazí v překryvném okně.
Když měníte text nebo grafiku, používá jаvascript stejný nápad jako v jazyce Java (kompilované objektově orientované programování odvozené z C ++).
Charakteristické znaky JS
jаvascript je běžně používán 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 jаvascript závisí na Javě, syntaxe je více podobná C a je založena na ECMAScriptu, skriptovacím jazyce vyvinutém společností Sun Microsystems.
jаvascript je skriptovací jazyk na straně klienta. To znamená, že zdrojový kód zpracovává webový prohlížeč klienta, nikoliv webový server. Funkce lze spustit po načtení webové stránky bez komunikace se serverem. Funkce jаvascriptu může například zkontrolovat webový formulář před jeho odesláním, aby se ujistil, že jsou vyplněny všechna pole. Kód může poskytnout chybovou zprávu před tím, než budou informace skutečně předány serveru.
Podobně jako na straně serveru skriptovací jazyky, jako PHP a ASP, může být kód jаvascript vložen kdekoli na stránce HTML na webu. V kódu HTML se však zobrazí pouze výstup kódu serveru a kód jаvascript zůstane zcela viditelný ve zdroji webové stránky. Může být také nalezen v samostatném souboru .JS, který lze také prohlížet v prohlížeči.
Ukázkový kód
Níže je uveden příklad základní funkce jazyka jаvascript, která přidává dvě čísla. Funkce se volá s parametry 7 a 11. Pokud byl v kódu HTML webové stránky obsažen následující kód, zobrazí se v poli výstrahy text "18".
Funkce jаvascript můžete volat do značek
Výhody a důležité nuance
Jedna z hlavních výhod Node.js, podle jeho tvůrce Ryana Dahla, je to, že blokuje I / O (I / O). Někteří vývojáři jsou velmi kritičtí vůči Node.js a všimněte si, že pokud jeden proces vyžaduje značný počet procesorových cyklů, aplikace je blokována. To může způsobit poruchu. Příznivci modelu Node.js tvrdí, že doba zpracování procesoru je méně znepokojující z důvodu velkého počtu malých procesů, na kterých je založen kód webu.
Popularita aplikací jаvascriptu v posledních několika letech vzrůstá a společnost Node.js rozhodně přispívá k tomuto růstu. Pokud se podíváme na statistiky, uvidíme, že na světě existují více balíčků 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? Jak začít studium? Samotný uzel je asynchronní platforma založená na událostech, postavená na základě jаvascriptového jаvascriptorového motoru a určená k vytváření škálovatelných síťových aplikací. Jinými slovy, Node.js je jаvascript plus C / C ++ ve spojení se systémem souborů, běžícími HTTP nebo TCP servery.
Uzel je jednoproudový a používá model souběžnosti založený na smyčce událostí. Neblokuje procesy a nezpůsobuje program, aby čekal, ale zaregistruje zpětné volání a umožňuje aplikaci pokračovat v práci. To znamená, že platforma může zpracovávat paralelní operace bez více podprocesů výkonu a efektivních měřítek.
Mezi následujícími jazyky a Node.js existují velké rozdíly:
Uzel umožňuje provádět další úkoly a čeká na oznámení, když je odpověď k dispozici;
Aplikace neupravuje data do paměti, ale místo toho ji rozděluje.
Přestože existují další systémy smyček událostí (například knihovna EventMachine v Ruby nebo Twisted v Pythonu), mezi nimi a uzlem existuje značný rozdíl.
V Node.JS byly všechny knihovny navrženy tak, aby byly neblokující, což nelze říci o jiných.
Použití případů
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), jednosložková rozhraní, JSON API a aplikace pro datové proudy.
Oficiální správce balíčků Node (NPM)
Uzel dluží většinu svého úspěchu správci balíčků, který je dodáván s ním. Výhody tohoto nástroje:
zjišťuje závislost aplikací na lokální, nikoliv celosvětové úrovni;
Současně zpracovává několik verzí stejného modulu;
můžete zadat 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 uzly v systémech Windows a OS X a můžete také nainstalovat prostřednictvím Správce balíčků. Pro testování uživatelského kódu s různými verzemi uzlů použijte NVM (uzel správce verzí).
Pomocí tohoto nástroje můžete použít několik verzí uzlu nainstalovaných v systému a snadno přepínat mezi nimi. V dalších několika řádcích uvidíme, jak nainstalovat NVM do systému Ubuntu.
Za prvé, musíme se ujistit, že náš systém má kompilátor C ++:
$ sudo apt-get update
$ sudo apt-get nainstalovat build-essential libssl-dev
Poté můžeme zkopírovat a vložit instalační program s jednou linkou pro NVM do terminálu:
$ curl https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | hit
NVM musí být správně nainstalována, takže se odhlásíme a přihlašujeme, abychom se ujistili, že je vše správné. Zadejte příkaz:
$ nvm
Pokud se při vstupu nevyskytne chyba, znamená to, že je vše v pořádku. Nyní můžeme přistoupit ke skutečnému založení Uzlu a NPM.
Výsledek na příkazovém řádku by měl vypadat takto:
$ nvm install v0.10.31
.. ################ 100,0%
Nyní by měly být v terminálu k dispozici oba uzly a npm:
$ node -v amp- amp- amp-npm -v
v0.10.31
1.4.23
Nyní je třeba nakonfigurovat Node.JS, aby se standardně spustil příkazem v terminálu:
$ nvm alias default 0.10.31
Můžeme instalovat další verze uzlu jako předtím, ale přepínat mezi nimi pomocí příkazu nvm use:
$ nvm install v0.8.10
Pokud nevíte, které verze jsou na vašem systému nainstalovány, stačí zadat nvm-list. Tento nástroj vám ukáže kompletní seznam, stejně jako aktuální a výchozí verze, například:
seznam $ 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 proud: v0.10.24 výchozí -> v0.10.24
Moduly
Node.JS tutorial pro začátečníky Java nebo Python si představují funkci importu k načtení dalších knihoven, zatímco PHP a Ruby to nevyžadují. Uzel implementuje rozhraní CommonJS pro moduly. Můžete také načíst další varianty pomocí požadovaného klíčového slova.
Například možná budeme potřebovat některé z našich vlastních modulů:
var http = vyžadovat (`http`);
var dns = vyžadovat (`dns`);
Můžeme také volat relativní soubory:
var myFile = vyžadovat (`./ myFile`) - // stáhnout myFile.js
Chcete-li nainstalovat moduly z NPM, vyhledávejte je na webových stránkách nebo v Githubu. Syntaxe pro lokální instalaci modulu je poměrně jednoduchá:
# where express === název modulu
$ npm install express
Zpětné volání
Při asynchronním programování nevracíme hodnoty při spouštění funkcí, ale místo toho použijeme styl pokračování (CPS). V tomto stylu asynchronní funkce volá zpětné volání (funkce, která běžně prochází jako poslední argument) a po dokončení programu pokračuje.
Následuje příklad hledání adres IPv4 pro doménu:
var dns = vyžadovat (`dns`);
dns.resolve4 (`google.com`, funkce (err, adresy) {
pokud (err) hodíte chybu;
console.log (`adresy:` + JSON.stringify (adresy));
});
Předali jsme zpětné volání (vestavěná anonymní funkce) jako druhý argument pro asynchronní dns.resolve4. Jakmile je asynchronní funkce připravena, zavolá zpět a pokračuje v provádění programu.
Události
Příručka pro začínající uživatele Node.JS zavádí standardní vzorek zpětného volání, který funguje dobře pro použití v případech, kdy chceme dostávat oznámení po ukončení funkce asynchronizace. Existují však situace, které vyžadují upozornění na různé události, které se nevyskytují současně.
Podívejme se na to s příkladem kódu s IRC klientem:
var irc = vyžadovat (`irc`);
var 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 + `=>` + až + `:` + zpráva);
});
client.on (`pm`, funkce (z, zpráva) {
console.log (od + `=> ME: + zpráva);
}).
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 serveru IRC;
chyba se spustí v případě, že dojde k chybě;
zprávy a události pm jsou vybrány pro příchozí zprávy.
Výše uvedené události činí tuto situaci ideální pro použití šablony události 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á k připojení popisovačů 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á zdědí událost EventEmitter a generuje dva typy událostí:
data v pravidelných intervalech, což představuje využití paměti v bajtech;
chybová událost, pokud paměť překročí určitý limit.
Takže uzel není webový server, je to jeden způsob, jak vytvořit kód v počítači. Je to prostředí pro spouštění jazyka jаvascript.
- Jak vytvořit vlastní server v Agarionu? Jednoduchý způsob
- Kód chyby 0x80070035, `Síťová cesta nebyla nalezena `
- jаvascript: příklady aplikací
- Skok / pop
- Expresivní jаvascript: popis funkcí
- Pomocí prvků DOM přes jаvascript getElementById
- Pomocí funkce jаvascript setTimeout ()
- Jak povolit jаvascript v prohlížeči Google Chrome a dalších prohlížečích
- Použití upozornění jаvascript ()
- Rozvoj fronty: co je to, nebo jak vytvořit živý a inteligentní web
- Zpracování znaků: podřetězec metody jаvascript ()
- Použití metody replace ()
- Příklady použití metody délky jazyka jаvascript
- Jak převést řetězec na číslo v jazyce jаvascript
- Význam a použití jazyka jаvascript jsou neplatné
- Jak povolit jаvascript v prohlížeči Google Chrome a dalších prohlížečích
- Použití upozornění jаvascript ()
- Zpracování znaků: podřetězec metody jаvascript ()
- Příklady použití metody délky jazyka jаvascript
- Jak převést řetězec na číslo v jazyce jаvascript
- Význam a použití jazyka jаvascript jsou neplatné