Homepage » Coding » Kezdő útmutató a Node.js-hoz (kiszolgálóoldali JavaScript)

    Kezdő útmutató a Node.js-hoz (kiszolgálóoldali JavaScript)

    Node.js - egyszerű szavakkal - szerveroldali JavaScript. Napjainkban rengeteg buzzot kap. Ha már hallottál róla, vagy érdekel a tanulás és a kezek megszerzése - ez a hozzászólás az Ön számára.

    Tehát pontosan mi van a JavaScript használatának szükségessége a szerveren? Ahhoz, hogy a Node.js fogalmát egyértelművé tegyem, azt szeretném összehasonlítani a szokásos szerveroldali nyelvekkel, mint a PHP. A Node.js egy eseményalapú kiszolgáló végrehajtási eljárása inkább a többszálú végrehajtás PHP-ben.

    Hogy tovább elmagyarázzuk, meg fogjuk beszélni az ötletet mi a Node.js néhányan együtt tárhelyszolgáltatói javaslatok és telepítési tippek. A JavaScript, a jQuery és az Ajax közbenső szintű ismerete szükséges, de példákat is adunk Önnek, hogy könnyebben megérthesse az egész dolgot, és még jobban dolgozhasson, így megismerjük a Node.js-t.!

    Tekintsünk egy esetet:

    Tekintsünk olyan webhelyet, ahol dinamikusan kell betölteni a tartalmat egy másik, lassú webkiszolgálóról. A PHP-ben kétféleképpen tehetjük meg - egy egyszerű fájlba kódolja és más szkriptként kódolja, azután végrehajtása többszálú megközelítéssel.

    Az első módszerben, bár a kód egyszerű a végrehajtás egy ideig megáll azon a ponton, ahol a lassú webkiszolgáló elérhető. A második módszer jobban optimalizálható teljesítmény esetén de nehezen kódolható, és többszálú menedzsment fölött van. Az eset hasonló a legtöbb webes programozási nyelv esetében, a szerveroldali JavaScript-n kívül, azaz a Node.js.

    Mi a különbség a Node.js-ban? Annak érdekében, hogy megértsük a Node.js-ot, meg kell szem előtt tartani a JavaScript esemény alapú programozása a böngészőben. Ugyanezt a technológiát használjuk itt. Külön szál használata helyett a funkció a csatolt eseményhez kapcsolódik a “lassú webkiszolgáló elérése” fent említett, így megkapja a teljes funkcionalitás a fent említett optimalizált második opcióban, többszálú felső rész nélkül.

    A Node.js használatának megkezdése

    A Node.js JavaScript. Miért nem használhatjuk a kliens JavaScript alapú eseményeit kiszolgálóra? Ez a gondolat a Node.js fejlesztéséhez vezethetett volna.

    Ez azt jelenti, hogy a Node.js fő kiemelése - ez esemény alapú aszinkron funkciók. Használ egy eseményhurok az I / O műveletek várakozása helyett (külső webszolgáltatás elérése, hardver elérése).

    A Node.js még mindig használja ki a feldolgozási teljesítményét amikor a szerver más műveletet vár. Ez teszi a Node.js-t skálázható egyidejű kapcsolatok millióinak.

    Hogyan fut a JavaScript egy kiszolgálón?

    A Node.js egy v8 környezetben működik - ez egy Virtuális gép vagy a JavaScript motor ami a JavaScript kódot futtatja, így a tárhelyhez nem használhatja a szokásos webtárhelyeket. Szükséged lesz azokra, akiknek van v8 környezet.

    Íme néhány szolgáltatói javaslat a Node.js tárhelyére:

    1. Cloud Foundry
    2. Cloudnode
    3. DotCloud
    4. Duostack

    A Node.js telepítése

    A csomópont lesz tökéletesen működik Linux, Macintosh és Solaris operációs rendszereken. Windows rendszeren a Cygwin emulációs réteg segítségével telepíthető. A Windows egyik felépítése sem kielégítő, de még mindig lehetséges valami futni.

    1. lehetőség: Csomópont építése a forrásból.

    Használat csinál node.js létrehozása és telepítése (a következő parancsot hajtsa végre a parancssorban). Git szükséges.

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

    2. lehetőség: A Node.js telepítése a csomagból

    Mac felhasználók számára telepítheti a Node.js-ot a https://sites.google.com/site/nodejsmacosx/ csomagból, amely eléggé önmagában magyarázható.

    Vizsgálati csomópont telepítése

    A sikeres csomópont telepítés ellenőrzéséhez egy nagyon egyszerű konzol "Hello World" programot próbálhatunk ki. Létrehoz egy "" nevű fájlttest.js"és írja be a következő kódot.

     var sys = szükséges ("sys"); sys.puts ("Hello World"); 

    Kód magyarázat:

    Ez betölti a sys változóvá sys. Ezután a sys objektum a konzol feladatok végrehajtásához. A sys.puts egy olyan parancs, mint a cout C ++-ban, így a fenti parancsfájl futtatásához menjen a parancssorba, és futtassa azt az alábbi parancs segítségével:

     node test.js 

    Ha a telepítés sikeres, akkor a képernyőn megjelenik egy hello world output.

    HTTP-kiszolgáló létrehozása

    Most itt az ideje, hogy a Node.js. Itt az, amit fogunk tenni - mi létrehoz egy kiszolgálót, amely a “Helló Világ” a 8080-as port portáljához függetlenül attól, hogy az URL-cím melyik ötletet ad neked esemény jelentése.

    A kódok:

     var sys = szükséges ("sys"), my_http = szükséges ("http"); my_http.createServer (funkció (kérés, válasz) sys.puts ("I kicked"); response.writeHeader (200, "Content-Type": "text / plain"); response.write ("Hello World "); response.end ();). (8080); sys.puts ("Kiszolgáló fut 8080-on"); 

    Kód magyarázat:

    A Node.js legérdekesebb része az eseményalapú programozás. Ahhoz, hogy létrehozzunk egy HTTP-kiszolgálót, szükségünk lesz rá HTTP könyvtár, így tovább megyünk és hozzáadjuk my_http. A függvény által létrehozott szervert:

     my_http.createServer (függvény (kérés, válasz) ). hallgatni (8080); 

    Az első argumentumként megadott függvény végrehajtásra kerül minden alkalommal, amikor egy esemény bekapcsolódik a 8080-as porton, így maga a funkció azt javasolja, hogy a csomópont meghallgasson egy eseményt a 8080-as porton. Ennek észleléséhez hozzáadtam a “Megrúgtam” üzenet jelenik meg a konzol képernyőjén, amikor egy kérés érkezik.

    A kérés objektum tartalmaz minden, a szerverre tett kérésről szóló információt. Például tartalmazza az URL karakterláncot. A válasz az objektum az kezeli a kiszolgáló válaszát. Először a válasz fejlécét állítsuk be: a text / plain tartalom, majd kimenetek “Helló Világ“, majd fejezze be a kimeneti áramot. 200 az állapot válasz.

    Nos, a fenti egy nagyon egyszerű példa, de láthatjuk, hogy bármi URL, amit ugyanazon a kiszolgálón a böngészőben adunk, ugyanazt a kimenetet kapjuk, mint a “Helló Világ”.

    Egyszerű statikus fájlszerver létrehozása

    Hozzunk létre egy egyszerű statikus fájlkiszolgálót a következő bemutatón.

    A kódok:

     var sys = demand ("sys"), my_http = szükséges ("http"), path = required ("path"), url = szükséges ("url"), filesys = szükséges ("fs"); my_http.createServer (funkció (kérés, válasz) var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); elérési útvonalak (teljes_útvonal, funkció (létezik) ) if (! Yra) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 Nem található"); answer.end (); else filesys.readFile (full_path, "binary", függvény (err, file) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write (hibás + "n"); response.end (); else response.writeHeader (200); response.write (fájl, "bináris"); response.end ();););). hallgatni (8080); sys.puts ("Kiszolgáló fut 8080-on"); 

    Kódok magyarázata:

    A fenti kód elég egyszerű, blokkként fogjuk megvitatni.

     var sys = demand ("sys"), my_http = szükséges ("http"), path = required ("path"), url = szükséges ("url"), filesys = szükséges ("fs"); 

    Mindezek a könyvtárak szükségesek a programhoz. Használata egyértelmű lesz a következő kódban.

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

    A kérés az objektumnak a kérés részletei vannak, amint azt korábban megvitattuk. Használjuk a elemez az URL-osztály azon funkciója, amelybe beillesztettük pathname a kérés URL-jét. Miután megkapta a pathname-t, összefűzzük azt az aktuális munkakönyvtár útvonalával, hogy megkapjuk a fájl teljes elérési útját.

    Az URL-ekhez való csatlakozáshoz van egy függvényünk csatlakozik az útvonalkönyvtárban.

     path.exists (teljes_elérési_út, funkció (létezik)  

    Miután megkaptuk a teljes elérési utat, ellenőrizzük, hogy az útvonal létezik-e a függvény által létezik. Az ellenőrzés befejezése után a visszahívási függvényt második érvként hívják és továbbítják.

     ha (! létezik) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 nem található"); Response.End ();  else filesys.readFile (full_path, "binary", függvény (err, file) if (err) response.writeHeader (500, "Content-Type": "text / plain"); err + "n"); response.end (); else response.writeHeader (200); response.write (fájl, "bináris"); response.end (););  

    Most, hogy a visszahívási függvényben a fájl nem létezik, küldünk egy ""404 Oldal nem található"hiba.

    Ha az oldal megtalálható, akkor a fájlt a readfile funkció a fájlrendszerben. Láthatjuk a visszahívási funkciót is a readfile az ott definiált függvény. Ha nincs hiba a fájl olvasásakor, akkor megjelenik. Hiba esetén az 500-as állapot visszaáll a hiba szövegével.

    Azt is javaslom, hogy az előző bemutató csomagolási kódjait egy függvénybe lehessen csomagolni, hogy azt a következő bemutatón vagy későbbi használatra használhassa.

     var sys = demand ("sys"), my_http = szükséges ("http"), path = required ("path"), url = szükséges ("url"), filesys = szükséges ("fs"); my_http.createServer (funkció (kérés, válasz) var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); elérési útvonalak (teljes_útvonal, funkció (létezik) ) if (! Yra) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 Nem található"); answer.end (); else filesys.readFile (full_path, "binary", függvény (err, file) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write (hibás + "n"); response.end (); else response.writeHeader (200); response.write (file, "binary"); response.end (););); my_http. createServer (függvény (kérés, válasz) var my_path = url.parse (request.url) .pathname; load_file (my_path, válasz);) hallgatni (8080); sys.puts ("Kiszolgáló fut 8080-on"); 

    Maradjon velünk !

    Ez minden. Remélem, ez egy jó ötlet a Node.js. A következő cikkben megmutatom, hogyan kell a Facebook betöltése és megjelenése a Node.js használatával jár. Maradjon velünk!

    A szerkesztő megjegyzése: Ezt a bejegyzést írta Geo Paul Hongkiat.com részére. A Geo független web / iPhone fejlesztő, aki a PHP, a Codeigniter, a WordPress, a jQuery és az Ajax munkáival dolgozik. 4 éves tapasztalattal rendelkezik a PHP-ben és 2 éves tapasztalattal rendelkezik a fejlesztés fejlesztésében.