Početna » šifriranje » Vodič za početnike za Node.js (JavaScript na strani poslužitelja)

    Vodič za početnike za Node.js (JavaScript na strani poslužitelja)

    Node.js - jednostavnim riječima - jest JavaScript na strani poslužitelja. Ovih dana dobivamo puno buzzova. Ako ste čuli za to ili ste zainteresirani za učenje i dobivanje nekih ruku - ovaj post je za vas.

    Dakle, što točno je potrebno koristiti JavaScript u poslužitelju? Da bi koncept Node.js bio jasan, htio bih ga usporediti s običnim jezicima na strani poslužitelja kao što je PHP. Node.js koristi postupak izvršenja poslužitelja na temelju događaja radije nego multithreaded izvršenje u PHP-u.

    Da bismo to dalje objasnili, govorit ćemo o ideji što je Node.js zajedno s nekim prijedloge davatelja hosting usluga i savjeta za instalaciju. Potrebna su srednja znanja JavaScripta, jQuery-a i Ajax-a, ali pružit ćemo vam i primjere kako biste lakše razumjeli cijelu stvar, pa čak i raditi na njoj, pa saznajte više o Node.js!

    Razmotrimo slučaj:

    Razmislite o web-lokaciji na kojoj morate dinamički učitavati sadržaj s drugog web-poslužitelja koji je spor. U PHP-u to možete učiniti na dva načina - kodiranje u jednostavnu datoteku i kodira ga kao drugu skriptu, zatim izvršava ga u višenitnom pristupu.

    U prvoj metodi, iako je kod jednostavan Izvršenje zastaje neko vrijeme na mjestu gdje se pristupa sporom web poslužitelju. Druga metoda je optimiziraniji u slučaju izvedbe ali to je teško kodirati i ima višestruke upravne troškove. Slučaj je sličan za većinu drugih web-programskih jezika, osim JavaScripta na strani poslužitelja, tj. Node.js.

    Koja je razlika u Node.js? Da biste razumjeli Node.js morate imati na umu Programiranje na temelju JavaScripta u pregledniku. Tu istu tehnologiju koristimo. Umjesto korištenja zasebne niti, a funkcija je pridružena završnom događaju od “spor pristup web poslužitelju” gore spomenuto, tako dobivate puna funkcionalnost u gore navedenoj optimiziranoj drugoj opciji bez višenitnih opterećenja.

    Početak rada s Node.js

    Node.js je JavaScript. Zašto ne možemo koristiti JavaScript temeljen na događajima u klijentu na poslužitelju? Ta misao mogla je dovesti do razvoja Node.js.

    To je glavni naglasak Node.js - to su asinkrone funkcije na temelju događaja. Koristi se petlja događaja umjesto čekanja I / O operacija (pristup vanjskoj web-usluzi, pristup hardveru).

    Node.js bi još mogao iskoristiti njegovu procesorsku snagu kada poslužitelj čeka bilo koju drugu operaciju. To čini Node.js skalabilan na milijune istodobnih veza.

    Kako se JavaScript pokreće na poslužitelju?

    Node.js radi na v8 okruženju - to je virtualni stroj ili a JavaScript engine koji pokreće JavaScript kôd, tako da za hosting ne možete koristiti obične web hostove. Trebat će ti oni koji imaju okruženje.

    Evo nekih prijedloga pružatelja usluga za hosting Node.js:

    1. Ljevaonica oblaka
    2. Cloudnode
    3. DotCloud
    4. Duostack

    Instaliranje Node.js

    Čvor će savršeno rade na operativnim sustavima Linux, Macintosh i Solaris. U sustavu Windows možete ga instalirati pomoću sloja emulacije Cygwin. Nijedna gradnja u sustavu Windows nije zadovoljavajuća, ali još uvijek je moguće pokrenuti nešto.

    Opcija 1: Izgradnja čvora iz izvora.

    Koristiti napraviti za izgradnju i instalaciju node.js (izvršite sljedeće u naredbenom retku). Potreban je Git.

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

    Opcija 2: Instaliranje Node.js iz paketa

    Za korisnike Mac računala možete instalirati Node.js kao paket s https://sites.google.com/site/nodejsmacosx/ koji je sam po sebi razumljiv.

    Instalacija ispitivanja čvora

    Kako bi provjerili vašu uspješnu instalaciju čvora, možemo isprobati vrlo jednostavan program "Hello World". Izradite datoteku pod nazivom "test.js"i upišite sljedeći kod u njega.".

     var sys = require ("sys"); sys.puts ("Hello World"); 

    Objašnjenje koda:

    To učitava sys klasa u varijablu sys. Zatim koristi sys objekt za izvršavanje zadataka konzole. sys.puts naredba je slična naredbi cout u C ++, tako da biste pokrenuli gornju skriptu idite u naredbeni redak i pokrenite je pomoću naredbe ispod:

     čvor test.js 

    Ako je vaša instalacija uspješna, na zaslonu će se prikazati pozdravni izlaz za svijet.

    Izrada HTTP poslužitelja

    Sada je vrijeme za stvaranje "Hello World" putem web poslužitelja pomoću Node.js. Evo što ćemo učiniti - mi stvoriti poslužitelj koji izlazi a “Pozdrav svijete” na localhost na portu 8080 bez obzira na URL, dajući vam ideju što događaj je.

    Kodovi:

     var sys = require ("sys"), my_http = require ("http"); my_http.createServer (funkcija (zahtjev, odgovor) sys.puts ("dobio sam udarac"); response.writeHeader (200, "Content-Type": "text / plain"); reply.end ();) slušati (8080); sys.puts ("Poslužitelj na 8080"); 

    Objašnjenje koda:

    Najzanimljiviji dio Node.js je programiranje temeljeno na događajima. Da bismo stvorili HTTP poslužitelj trebamo HTTP knjižnica, tako da idemo naprijed i dodamo ga my_http. Poslužitelj stvaramo pomoću funkcije:

     my_http.createServer (funkcija (zahtjev, odgovor) ) slušati (8080.); 

    Funkcija dana kao prvi argument se izvršava svaki put kada se događaj pokrene u portu 8080, tako i sama funkcija predlaže da čvor sluša događaj u portu 8080. Da bih to otkrio, dodao sam “Izbacili su me” poruka koja će se prikazati na zaslonu konzole svaki put kada se primi zahtjev.

    zahtjev objekt sadrži sve informacije o zahtjevu koji je upućen poslužitelju. Na primjer, sadrži niz URL-a. odgovor objekt je objekt koji rješava odgovor poslužitelja. Najprije postavimo zaglavlje odgovora kao tekst / običan sadržaja, zatim izlaze “Pozdrav svijete“, zatim završite izlazni tok. 200 je odgovor na status.

    Pa, gornji je vrlo jednostavan primjer, ali možemo vidjeti da koji god URL dajemo u pregledniku za isti poslužitelj dobivamo isti izlaz kao “Pozdrav svijete”.

    Stvaranje jednostavnog statičkog poslužitelja datoteka

    Krenimo u jednostavnom statičnom poslužitelju datoteka u sljedećem vodiču.

    Kodovi:

     var sys = require ("sys"), my_http = require ("http"), path = require ("putanja"), url = require ("url"), filesys = require ("fs"); my_http.createServer (funkcija (zahtjev, odgovor) var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); path.exists (full_path, function (postoji) ) if (! exist) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 Not Found"); response.end (); else filesys.readFile (full_path, "binary", funkcija (err, file) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write (err + response.end (); else response.writeHeader (200); response.write (datoteka, "binarno"); response.end ();););). slušati (8080); sys.puts ("Poslužitelj na 8080"); 

    Objašnjenje kodova:

    Gornji kod je prilično jednostavan, raspravit ćemo ga kao blokove.

     var sys = require ("sys"), my_http = require ("http"), path = require ("putanja"), url = require ("url"), filesys = require ("fs"); 

    Sve te knjižnice su potrebne za program. Njegova uporaba bit će jasna u sljedećem kodu.

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

    zahtjev objekt ima detalje zahtjeva kao što smo ranije raspravljali. Mi koristimo raščlaniti funkcija klase URL-a koju smo uključili za dobivanje ime putanje URL-a zahtjeva. Nakon što smo dobili putanju, spojili smo je s putanjom trenutnog radnog direktorija kako bismo dobili potpuni put datoteke.

    Za pridruživanje URL-ovima pozvali smo funkciju pridružiti u knjižnici staza.

     path.exists (full_path, funkcija (postoji)  

    Nakon dobivanja pune staze provjeravamo postoji li put prema funkciji postoji. Nakon što je provjera obavljena, poziva se funkcija povratnog poziva i proslijeđena kao drugi argument.

     ako (! postoji) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 nije pronađen"); response.end ();  else filesys.readFile (full_path, "binary", funkcija (err, file) if (err) response.writeHeader (500, "Content-Type": "text / plain"); err + "n"); response.end (); drugo response.writeHeader (200); response.write (datoteka, "binarno"); response.end (););  

    Sada u funkciji povratnog poziva ako datoteka ne postoji, šaljemo "404 Stranica nije pronađena"pogreška.

    Ako je stranica pronađena, čitamo je datoteku readFile u datotečnom sustavu. Također možemo vidjeti funkciju povratnog poziva za readFile tu definirana funkcija. Ako nema pogreške prilikom čitanja datoteke, ona će se prikazati. Ako postoji pogreška, status 500 se vraća s tekstom pogreške.

    Preporučujem i kodiranje prethodnog tutoriala u funkciju, tako da je možete koristiti u sljedećem vodiču ili za buduću upotrebu.

     var sys = require ("sys"), my_http = require ("http"), path = require ("putanja"), url = require ("url"), filesys = require ("fs"); my_http.createServer (funkcija (zahtjev, odgovor) var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); path.exists (full_path, function (postoji) ) if (! exist) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 Not Found"); response.end (); else filesys.readFile (full_path, "binary", funkcija (err, file) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write (err + reply.end (); else response.writeHeader (200); response.write (datoteka, "binarno"); response.end (););); my_http. createServer (funkcija (zahtjev, odgovor) var my_path = url.parse (request.url) .pathname; load_file (my_path, response);). listen (8080); sys.puts ("Poslužitelj na 8080"); 

    Ostanite s nama !

    To je sve. Nadam se da vam ovo daje dobru ideju o Node.js. U sljedećem članku pokazat ću vam kako učitava i prikazuje broj Facebooka voli koristiti Node.js. Ostanite s nama!

    Napomena urednika: Ovaj post je napisao / la Geo Paul za Hongkiat.com. Geo je nezavisni Web / iPhone programer koji uživa u radu s PHP-om, Codeigniter-om, WordPress-om, jQuery-jem i Ajax-om. On ima 4 godine iskustva u PHP-u i 2 godine iskustva u razvoju aplikacija iIPhone.