Domovská » Kódování » Průvodce pro začátečníky k Node.js (JavaScript na straně serveru)

    Průvodce pro začátečníky k Node.js (JavaScript na straně serveru)

    Node.js - jednoduchými slovy - je JavaScript na straně serveru. V těchto dnech to bylo hodně bzučení. Pokud jste o něm slyšeli, nebo máte zájem o to, abyste se o něm dozvěděli a získali nějaké ruce - tento příspěvek je pro vás.

    Takže co přesně je potřeba používat JavaScript na serveru? Aby byl koncept Node.js jasný, rád bych ho porovnal s běžnými jazyky na straně serveru, jako je PHP. Node.js používá prováděcí postup založený na událostech místo provádění více podprocesů v PHP.

    Abychom to dále vysvětlili, budeme hovořit o myšlence co je Node.js spolu s některými Návrhy poskytovatele hostingu a tipy pro instalaci. Jsou vyžadovány středně pokročilé znalosti JavaScriptu, jQuery a Ajaxu, ale také vám poskytneme příklady, které vám usnadní pochopení celé věci a dokonce na ní budete pracovat, takže se o Node.js dozvíte více.!

    Uvažujme případ:

    Zvažte webovou stránku, ve které potřebujete načíst obsah dynamicky z jiného webového serveru, který je pomalý. V PHP to můžete udělat dvěma způsoby - kódování v jednoduchém souboru a kódování jako jiný skript, pak provádění v multithreaded přístupu.

    V první metodě, i když je kód jednoduchý provedení se na chvíli pozastaví v místě, kde je přistupován pomalý webový server. Druhá metoda je více optimalizované v případě výkonu ale je těžké kódovat a má vícevláknovou režii. Případ je podobný pro většinu webových programovacích jazyků jiných než JavaScript na straně serveru, tj. Node.js.

    Jaký je rozdíl v Node.js? Abychom porozuměli Node.js, musíte mít na paměti JavaScript je událost založená programování v prohlížeči. Využíváme tu stejnou technologii. Namísto použití samostatného podprocesu a funkce je připojena k cílové události z “pomalý přístup na webový server” výše uvedené, tak dostanete plnou funkčnost v druhé optimalizované variantě uvedené výše bez jakéhokoliv vícevláknového réžia.

    Začínáme s Node.js

    Node.js je JavaScript. Proč nemůžeme využít serverovou funkcionalitu založenou na událostech na serveru? Tato myšlenka mohla vést k vývoji Node.js.

    To znamená, že hlavním vrcholem Node.js - je to asynchronní funkce založené na událostech. Používá smyčka události místo čekání na operace I / O (přístup k externí webové službě, přístup k hardwaru).

    Node.js mohl stále využijí svého zpracovatelského výkonu když server čeká na jinou operaci. To dělá Node.js škálovatelný na miliony souběžných připojení.

    Jak se JavaScript běží na serveru?

    Node.js pracuje na prostředí v8 - je to virtuální stroj nebo Stroj JavaScript který spouští JavaScriptový kód, takže pro hostování nemůžete používat běžné webové hostitele. Budete potřebovat ty, které mají prostředí v8.

    Zde jsou některé návrhy poskytovatele služby Node.js:

    1. Slévárna mraků
    2. Cloudnode
    3. DotCloud
    4. Duostack

    Instalace Node.js

    Uzel bude fungují perfektně na operačních systémech Linux, Macintosh a Solaris. V systému Windows jej můžete nainstalovat pomocí emulační vrstvy Cygwin. Žádná z verzí v systému Windows není uspokojivá, ale stále je možné něco spustit.

    Možnost 1: Uzel budovy ze zdroje.

    Použití udělat vytvořit a nainstalovat node.js (na příkazovém řádku spusťte následující příkaz). Git je nutný.

     git clone --depth 1 git: //github.com/joyent/node.git cd node git checkout v0.4.11 export JOBS = 2 mkdir ~ / local ./configure --prefix = $ HOME / local / node make make install echo 'export PATH = $ HOME / local / node / bin: $ PATH' >> ~ / .profile echo 'export NODE_PATH = $ HOME / local / node: $ HOME / local / node / lib / node_modules' >> ~ / .profile source ~ / .profile 

    Možnost 2: Instalace Node.js z balíčku

    Pro uživatele Mac můžete nainstalovat Node.js jako balíček z https://sites.google.com/site/nodejsmacosx/..

    Instalace testovacího uzlu

    Pro ověření úspěšné instalace uzlu můžeme vyzkoušet velmi jednoduchý program konzoly "Ahoj Svět". Vytvořit soubor s názvem "test.js"a do něj napište následující kód. \ t.

     var sys = vyžadují ("sys"); sys.puts ("Hello World"); 

    Vysvětlení kódu:

    Načte to sys třídy do proměnné sys. Poté používá sys k provádění úkolů konzoly. sys.puts je příkaz podobný příkazu cout v jazyce C ++, aby bylo možné spustit skript výše, přejděte na příkazový řádek a spusťte jej příkazem níže:

     node test.js 

    Pokud je vaše instalace úspěšná, dostanete na obrazovku výstup hello world.

    Vytvoření serveru HTTP

    Nyní je čas vytvořit "Ahoj Svět" přes webový server pomocí Node.js. Tady je to, co budeme dělat - my vytvořit server, na kterém bude výstup a “Ahoj světe” na localhost na portu 8080 bez ohledu na to, co je to URL, což vám dává představu, co událost je.

    Kódy:

     var sys = vyžadují ("sys"), my_http = vyžadují ("http"); my_http.createServer (funkce (požadavek, odpověď) sys.puts ("Já jsem kopl"); response.writeHeader (200, "Content-Type": "text / plain"); response.write ("Hello World "); response.end ();). listen (8080); sys.puts ("Server běží na 8080"); 

    Vysvětlení kódu:

    Nejzajímavější částí v Node.js je programování založené na událostech. Pro vytvoření HTTP serveru potřebujeme Knihovna HTTP, tak jdeme kupředu a přidáme ho my_http. Vytváříme server pomocí funkce:

     my_http.createServer (funkce (požadavek, odpověď) ). poslech (8080); 

    Provádí se funkce uvedená jako první argument při každém spuštění události v portu 8080, takže samotná funkce navrhuje uzel, aby naslouchal události v portu 8080. Abych to zjistil, přidal jsem a “Byl jsem vyhozen” zpráva, která se zobrazí na obrazovce konzoly vždy, když je přijat požadavek.

    žádost objekt obsahuje všechny informace o požadavku, který byl proveden na serveru. Obsahuje například řetězec URL. Odezva objekt je objekt, který zpracovává odpověď ze serveru. Nejprve nastavíme záhlaví odpovědi jako a text / plain obsah, pak výstupy “Ahoj světe“, pak ukončete výstupní proud. 200 je stavová odpověď.

    Výše uvedené je velmi jednoduchý příklad, ale můžeme vidět, že jakákoliv adresa URL, kterou v prohlížeči zadáme pro stejný server, získáme stejný výstup jako “Ahoj světe”.

    Vytvoření jednoduchého statického souborového serveru

    Vytvořme jednoduchý statický souborový server v dalším tutoriálu.

    Kódy:

     var sys = vyžadují ("sys"), my_http = vyžadují ("http"), path = vyžadují ("cesta"), url = vyžadují ("url"), filesys = vyžadují ("fs"); my_http.createServer (funkce (požadavek, odpověď) var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); path.exists (full_path, function (existuje ) if (! existuje) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 Not Found"); response.end (); else filesys.readFile (full_path, "binární", funkce (err, soubor) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write (err + "n"); response.end (); else response.writeHeader (200); response.write (soubor, "binární"); response.end ();););). poslouchat (8080); sys.puts ("Server běží na 8080"); 

    Vysvětlení kódů:

    Výše uvedený kód je velmi jednoduchý, budeme o něm diskutovat jako o blocích.

     var sys = vyžadují ("sys"), my_http = vyžadují ("http"), path = vyžadují ("cesta"), url = vyžadují ("url"), filesys = vyžadují ("fs"); 

    Všechny tyto knihovny jsou nutné pro program. Jeho použití bude jasné v následujícím kódu.

     var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); 

    žádost objekt má podrobnosti požadavku, jak jsme již dříve diskutovali. Používáme analyzovat funkce třídy URL, kterou jsme zahrnuli, abychom získali cesta adresy URL požadavku. Po získání cesty jej spojíme s cestou aktuálního pracovního adresáře, abychom získali úplnou cestu k souboru.

    Pro spojení URL máme volanou funkci připojit v knihovně cest.

     path.exists (full_path, function (existuje)  

    Po získání úplné cesty zkontrolujeme, zda cesta existuje funkcí existuje. Po provedení kontroly je vyvolána funkce zpětného volání a předána jako druhý argument.

     if (! existuje) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 Nebyl nalezen n"); response.end ();  else filesys.readFile (full_path, "binární", funkce (err, soubor) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write ( err + "n"); response.end (); else response.writeHeader (200); response.write (soubor, "binární"); response.end (););  

    Nyní ve funkci zpětného volání, pokud soubor neexistuje, pošleme "404 Stránka nenalezena"Chyba.

    Pokud je stránka nalezena, pak soubor přečteme readFile funkce v souborovém systému. Můžeme také vidět funkci zpětného volání readFile definovaná funkce. Pokud při čtení souboru nedojde k chybě, zobrazí se. Pokud dojde k chybě, je stav 500 vrácen s chybovým textem.

    Také doporučuji zabalení kódů předchozího tutoriálu do funkce, takže jej můžete použít v dalším tutoriálu nebo pro budoucí použití.

     var sys = vyžadují ("sys"), my_http = vyžadují ("http"), path = vyžadují ("cesta"), url = vyžadují ("url"), filesys = vyžadují ("fs"); my_http.createServer (funkce (požadavek, odpověď) var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); path.exists (full_path, function (existuje ) if (! existuje) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 Not Found"); response.end (); else filesys.readFile (full_path, "binární", funkce (err, soubor) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write (err + "n"); response.end (); else response.writeHeader (200); response.write (soubor, "binární"); response.end (););); my_http. createServer (funkce (požadavek, odpověď) var my_path = url.parse (request.url) .pathname; load_file (my_path, response);). listen (8080); sys.puts ("Server běží na 8080"); 

    Zůstaňte naladěni !

    To je vše. Doufám, že vám to dává dobrou představu o Node.js. V následujícím článku vám ukážu, jak načíst a zobrazit počet Facebook rád pomocí Node.js. Zůstaňte naladěni!

    Poznámka editora: Tento příspěvek je napsán Geo Paul pro Hongkiat.com. Geo je nezávislý vývojář webu / iPhone, který má rád práci s PHP, Codeigniter, WordPress, jQuery a Ajax. Má 4 roky zkušeností v PHP a 2 roky zkušeností v oblasti vývoje aplikací iniPhone.