Hemsida » Kodning » Nybörjarens guide till Node.js (Server-side JavaScript)

    Nybörjarens guide till Node.js (Server-side JavaScript)

    Node.js - i enkla ord - är server-sida JavaScript. Det har blivit mycket buzz dessa dagar. Om du har hört talas om det eller du är intresserad av att lära dig och få några händer på det - det här inlägget är för dig.

    Så vad exakt är behovet av att använda JavaScript på servern? För att göra begreppet Node.js klart vill jag jämföra det med de vanliga språken på serversidan, som PHP. Node.js använder en händelsebaserad serverkörningsprocedur snarare än det multithreaded utförandet i PHP.

    För att förklara det vidare talar vi om tanken på vad Node.js är tillsammans med några webbhotell tips och installations tips. Kunskap på medellång nivå om JavaScript, jQuery och Ajax krävs, men vi kommer även att ge exempel för att du ska förstå hela grejen enklare och till och med arbeta med det, så låt oss lära känna mer om Node.js!

    Låt oss överväga ett fall:

    Tänk på en webbplats där du måste ladda innehållet dynamiskt från en annan webbserver som är långsam. I PHP kan du göra det på 2 sätt - kodar den i en enkel fil och kodar det som ett annat skript, sedan exekvera det i en multithreaded approach.

    I den första metoden trots att koden är enkel utförandet pausar ett tag vid den punkt där den långsamma webbservern är tillgänglig. Den andra metoden är mer optimerad vid prestanda men det är svårt att koda och det har en multithreadad hanteringskostnad. Fallet är likartat för de flesta av de andra webbprogrammeringsspråk än serverns JavaScript, dvs Node.js.

    Vad är skillnaden i Node.js? För att förstå Node.js måste du komma ihåg det JavaScript-händelsebaserad programmering i webbläsaren. Vi använder samma teknik här. I stället för att använda en separat tråd, a funktionen är ansluten till målhändelsen av “långsam webbserveråtkomst” nämnt ovan, så får du det full funktionalitet i det optimerade andra alternativet som nämns ovan utan några multithread-omkostnader.

    Komma igång med Node.js

    Node.js är JavaScript. Varför kan vi inte använda händelsebaserad funktionalitet av JavaScript i klienten till en server? Denna tanke kan ha lett till utvecklingen av Node.js.

    Det sagt, huvudpunkten i Node.js - Det är händelsebaserade asynkrona funktioner. Det använder en händelsesslinga istället för att vänta på I / O-operationer (tillgång till extern webbtjänst, åtkomst till maskinvara).

    Node.js kan fortfarande utnyttja sin bearbetningskraft när servern väntar på någon annan operation. Detta gör Node.js skalbar till miljontals samtidiga förbindelser.

    Hur körs JavaScript på en server?

    Node.js fungerar på en v8-miljö - det är en virtuell maskin eller a JavaScript-motor som kör JavaScript-koden, så för hosting kan du inte använda vanliga webbhotell. Du behöver de som har v8 miljö.

    Här är några leverantörsförslag för Node.js hosting:

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

    Installera Node.js

    Node kommer fungerar perfekt på Linux, Macintosh och Solaris operativsystem. På Windows kan du installera det med Cygwin-emuleringsskiktet. Ingen av byggnaderna i Windows är tillfredsställande men det är fortfarande möjligt att få något att springa.

    Alternativ 1: Byggnadskod från källan.

    Använda sig av göra att bygga och installera node.js (kör följande på kommandoraden). Git krävs.

     git klon --depth 1 git: //github.com/joyent/node.git cd node git checkout v0.4.11 export JOBS = 2 mkdir ~ / local ./configure --prefix = $ HEM / lokal / nod gör fabrikat installera echo 'export PATH = $ HEM / lokal / nod / bin: $ PATH' >> ~ / .profile echo 'export NODE_PATH = $ HEM / lokal / nod: $ HOME / local / node / lib / node_modules' .profile source ~ / .profile 

    Alternativ 2: Installera Node.js från Paket

    För Mac-användare kan du installera Node.js som ett paket från https://sites.google.com/site/nodejsmacosx/ vilket är ganska självförklarande.

    Testnod Installation

    För att kontrollera din framgångsrika Node-installation kan vi prova ett mycket enkelt konsol "Hello World" -program. Skapa en fil med namnet "test.js"och skriv följande kod i den.

     var sys = kräver ("sys"); sys.puts ("Hello World"); 

    Kodförklaring:

    Det laddar sys klass i en variabel sys. Det använder sedan sys föremål för att utföra konsoluppgifterna. De sys.puts är ett kommando som liknar cout i C ++, så för att köra skriptet ovan gå till kommandotolken och kör det med kommandot nedan:

     nod test.js 

    Om din installation lyckas kommer du att få en hälsosam världsutgång på skärmen.

    Skapa en HTTP-server

    Nu är det dags att skapa en "Hello World" via webbservern med Node.js. Här är vad vi ska göra - vi skapa en server som matar ut a “Hej världen” till lokala värd på hamnen 8080 oavsett vad webbadressen är, vilket ger dig en uppfattning vad händelse är.

    Koderna

     var sys = kräver ("sys"), my_http = kräver ("http"); my_http.createServer (funktion (begäran, svar) sys.puts ("Jag blev sparkad"); response.writeHeader (200, "Content-Type": "text / plain"); response.write "); response.end ();). lyssna (8080); sys.puts ("Server running on 8080"); 

    Kodförklaring:

    Den mest intressanta delen i Node.js är dess händelsebaserade programmering. För att skapa en HTTP-server behöver vi HTTP-bibliotek, så vi går vidare och lägger till den med my_http. Vi skapar servern genom funktionen:

     my_http.createServer (funktion (begäran, svar) ) lyssna (8080).; 

    Funktionen som anges som första argumentet utförs varje gång en händelse utlöses i port 8080, så själva funktionen föreslår noden att lyssna på en händelse i hamn 8080. För att upptäcka detta har jag lagt till a “Jag blev sparkad” meddelande som kommer att visas på konsolskärmen när en förfrågan mottas.

    De begäran objektet innehåller all information om begäran som har gjorts till servern. Till exempel innehåller den URL-strängen. De svar objekt är föremålet som hanterar svaret från servern. Först ställer vi rubriken på svaret som en text / plain innehåll, sedan utdata “Hej världen“, avsluta sedan utgångsströmmen. 200 är statussvaret.

    Tja, det ovanstående är ett mycket enkelt exempel men vi kan se att vilken webbadress vi ger i webbläsaren för samma server får vi samma resultat som “Hej världen”.

    Skapa en enkel statisk filserver

    Låt oss skapa en enkel statisk filserver i nästa handledning.

    Koderna

     var sys = kräver ("sys"), my_http = kräver ("http"), sökväg = kräver ("sökväg"), url = kräver ("url"), filesys = kräver ("fs"); my_http.createServer (funktion (begäran, svar) var my_path = url.parse (request.url). pathname; var full_path = path.join (process.cwd (), my_path); path.exists (full_path, function ) if (! exists) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 Ej hittat \ n"); response.end (); else filesys.readFile (full_path, "binär", funktion (err, fil) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write "\ n"); response.end (); else response.writeHeader (200); response.write (fil, "binär"); response.end ();););) lyssna (8080); sys.puts ("Server running on 8080"); 

    Koder förklaring:

    Ovanstående kod är ganska enkel, vi kommer att diskutera det som block.

     var sys = kräver ("sys"), my_http = kräver ("http"), sökväg = kräver ("sökväg"), url = kräver ("url"), filesys = kräver ("fs"); 

    Alla dessa bibliotek krävs för programmet. Användningen kommer att vara tydlig i följande kod.

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

    De begäran objektet har begäran detaljer som vi har diskuterat tidigare. Vi använder parse funktionen av URL-klassen som vi har inkluderat för att få sökvägsnamn av begäran URL. Efter att ha fått sökvägen sammanfogar vi den med den aktuella arbetsgruppens sökväg för att få hela sökvägen för filen.

    För att ansluta till webbadresser har vi en funktion som heter Ansluta sig i sökbiblioteket.

     path.exists (full_path, existerar funktion ()  

    Efter att ha fått hela sökvägen kontrollerar vi om banan existerar av funktionen existerar. Efter att kontrollen är klar kallas och återkopplas funktionen för återuppringning som det andra argumentet.

     om (! existerar) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 Not Found \ n"); response.end ();  annars filesys.readFile (full_path, "binär", funktion (err, fil) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write err + "\ n"); response.end (); else response.writeHeader (200); response.write (fil, "binär"); response.end (););  

    Nu i återuppringningsfunktionen om filen inte existerar skickar vi en "404 sida ej hittad"fel.

    Om sidan hittas läser vi filen av readfile funktion i filsystemet. Vi kan också se återuppringningsfunktionen för readfile funktion definierad där själv. Om det inte finns något fel vid läsning av filen kommer den att visas. Om det finns ett fel returneras en status 500 med feltexten.

    Jag rekommenderar även inpakningskoder från den tidigare handledningen till en funktion så att du kan använda den i nästa handledning eller för framtida bruk.

     var sys = kräver ("sys"), my_http = kräver ("http"), sökväg = kräver ("sökväg"), url = kräver ("url"), filesys = kräver ("fs"); my_http.createServer (funktion (begäran, svar) var my_path = url.parse (request.url). pathname; var full_path = path.join (process.cwd (), my_path); path.exists (full_path, function ) if (! exists) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 Ej hittat \ n"); response.end (); else filesys.readFile (full_path, "binär", funktion (err, fil) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write "\ n"); response.end (); else response.writeHeader (200); response.write (fil, "binär"); response.end ();;;); my_http. createServer (funktion (begäran, svar) var my_path = url.parse (request.url). pathname; load_file (my_path, response);). lyssna (8080); sys.puts ("Server running on 8080"); 

    Bo Tuned !

    Det är allt. Hoppas det här ger dig en bra uppfattning om Node.js. I nästa artikel kommer jag att visa dig hur du ska ladda och visa antal Facebook gillar att använda Node.js. Håll dig igång!

    Redaktörens anteckning: Det här inlägget är skrivet av Geo Paul för Hongkiat.com. Geo är en oberoende utvecklare av webb / iPhone som trivs med PHP, Codeigniter, WordPress, jQuery och Ajax. Han har 4 års erfarenhet av PHP och 2 års erfarenhet av iniPhone Application Development.