Vad är Node.JS och varför ska jag bry sig? [Webbutveckling]

Vad är Node.JS och varför ska jag bry sig? [Webbutveckling] / Wordpress & Webbutveckling

JavaScript är ett programmeringsspråk som bara körs i klienten, eller hur? Inte längre. Node.js är ett sätt att köra JavaScript på servern; men det är så mycket mer också. Om du är intresserad av webbutveckling, bör du verkligen ta reda på lite om Node och varför det gör vågor i samhället.

Vad är Node.js?

Node är ett gränssnitt till V8 JavaScript runtime - den super-snabb JavaScript tolk som körs i Chrome webbläsaren. Som det händer kan du också ladda ner V8 och lägga in det i någonting; Node gör det, för webbservrar. JavaScript är trots allt bara ett språk - det finns inget som säger att det inte kunde användas på en server och i användarens webbläsare. I en typisk LAMP-serverstack Så här konfigurerar du en Apache-webbserver i tre enkla steg Så här konfigurerar du en Apache-webbserver i tre enkla steg Oavsett orsaken kan du vid något tillfälle få en webbserver att gå. Oavsett om du vill ge dig fjärråtkomst till vissa sidor eller tjänster, vill du få ett samhälle ... Läs mer, du har en underliggande Apache eller NGINX webbserver, med PHP som körs ovanpå. Varje ny anslutning till servern skapar en ny tråd, och det är mycket enkelt att snabbt förlora prestanda eller för en webbplats till “gå ner” - Det enda sättet att stödja fler användare är att lägga till fler servrar. Det skala helt enkelt inte bra. Med Node är det inte så. Det finns ingen Apache att lyssna på inkommande anslutningar och returnera HTTP-statuskoder - du måste själv hantera den här kärnserverarkitekturen. Lyckligtvis finns moduler för att underlätta det, men det kan fortfarande vara lite överväldigande när du börjar. Resultatet är dock en högpresterande webbapplikation.

Klout - en webbstatistik för socialstatistik byggd på Node.js för högpresterande

JavaScript är en händelsebaserad språk jQuery-handledning (del 4) - Händelselysare jQuery-handledning (del 4) - Händelselyttare Idag ska vi sparka upp det och se hur jQuery lyser - händelser. Om du följde tidigare tutorials, borde du nu ha en ganska bra förståelse av grundläggande koden ... Läs mer, så allt som händer på servern utlöser en icke-blockering händelse. Varje ny anslutning brinner en händelse; data som tas emot från en uppladdningsblankett bränder en data-mottagen händelse; begära data från databasen brinner en händelse. I praktiken innebär det att en nod webbplats aldrig kommer att låsa upp och kan stödja tiotusentals samtidiga användare. Node.js spelar rollen för servern - Apache - och tolkar programkoden som körs ovanpå den. Precis som Apache finns det olika moduler (bibliotek) som kan installeras för att lägga till funktioner och funktionalitet - som datalager, Zip-filsupport, Facebook-inloggning eller betalnings gateways. Naturligtvis finns det inte så många som för PHP, men Node är fortfarande i det tidiga stadiet och det finns en stark gemenskap bakom den. Ett kärnkoncept av Node är asynkrona funktioner - så allt går i bakgrunden, i grund och botten. Med de flesta serverns skriptspråk måste programmet vänta medan varje funktion slutförs innan man går vidare till nästa. Med nod anger du funktioner som ska köras när något annat är slutfört, medan resten av appen går vidare. Det är ett komplext ämne som jag inte kommer att gå in på för mycket djup idag, men en av de egenskaper som definierar Node, så det är viktigt att förstå det. Noga chatt men - här är en Hello World exempel HTTP-server för att ge en snabb uppfattning om några av dessa begrepp.

 var http = kräver ("http"); http.createServer (funktion (begäran, svar) response.writeHead (200, 'Content-Type': 'text / plain'); response.write ('Hello World!'); response.end (); ) .listen (8080); console.log ("Server running!"); 

Låt oss försöka bryta ner det. Först, vi inkluderar http-modulen i projektet. Vi skapar då en server och skickar in en anonym funktion som en parameter - den här funktionen kommer att krävas för varje ny anslutning som gjorts. Det tar två argument - begäran, innehållande begäran parametrar från användaren; och svar, som vi ska använda för att skicka tillbaka saker. Därefter använder vi responsobjektet för att skriva en rubrik tillbaka till användaren med HTTP-koden för svar 200 (“ok”) och innehållstyp, skriv a “Hej världen!” meddelande och slutar svaret. Slutligen berättar vi servern att lyssna på port 8080 för inkommande förfrågningar och mata ut ett snabbt meddelande till konsolen (kommandoraden) för att meddela att den körs. Om du verkligen vill prova detta själv, spara ovanstående kod som test.js, ladda ner nodinstallatören och från kommandoraden -

node test.js

Öppna en webbläsare och navigera till localhost: 8080 för att se din testapp! Du borde nu få en liten uppfattning om hur denna helt asynkrona sak fungerar, tillsammans med händelsesdrivna modeller. Om du är ny på JavaScript, är konceptet att passera funktioner som argument till andra funktioner förmodligen lite konstigt.

Varför använda Node?

För det första för prestanda och skalbarhet. Node är snabb. Det är ett ganska viktigt krav när du är igång med att försöka göra nästa stora sak och vill se till att du kan skala snabbt och klara av en tillströmning av användare när din webbplats växer. Node är också perfekt för att erbjuda en RESTful API - en webbtjänst som tar några ingångsparametrar och skickar lite data tillbaka - enkel datahantering utan stor mängd beräkning. Node kan hantera tusentals av dessa samtidigt där PHP bara skulle kollapsa. Prestanda fördelar och skalbarhet åt sidan, det finns en bra chans att du redan känner till vissa JavaScript, så varför stör det att lära sig ett helt nytt språk som PHP? Och då - det är spänningen att lära sig något nytt och relativt oförkortat. Vet du när något nytt kommer och blir så allestädes närvarande att du ångrar inte att lära dig det tidigare, spelar du för alltid uppspelning? Gör inte det här den här gången. Noden kommer att bli stor.

nackdelar

Liksom de flesta nya tekniker är det inte så lätt att distribuera nod på befintliga värdar. Om du har en gemensam webbhotell kan du inte bara ladda upp en nod-app och förvänta dig att den ska fungera. VPS och dedikerade servrar är bättre placerade - du kan installera Node på dem. Ännu enklare är att använda en skalbar tjänst som Heroku, som är helt fri att utveckla din webbplats på. Du behöver bara betala när du behöver fler resurser. Jag gav ett exempel på att använda Heroku tidigare när vi använde det för att skapa en Facebook-fangate, men det kan också användas för Node. Å andra sidan är det väldigt enkelt att installera Node lokalt på din Windows-, Mac- eller Linux-dator och börja utvecklas omedelbart - bara gå över till Download Node. Det är också viktigt att notera att Node inte bara är en ersättning för Apache - befintliga webbapplikationer är inte kompatibla, och du kommer att fungera effektivt från början (även om det finns många ramar där ute för att hjälpa dig med gemensamma funktioner). Den andra stora nackdelen med nod är att den fortfarande är i de tidiga utvecklingsstadierna, vilket innebär att vissa funktioner sannolikt kommer att förändras när utvecklingen fortskrider. Faktum är att om du tittar på dokumentationen innehåller det ett stabilitetsindex, vilket visar hur riskabelt användningen av varje funktion är för närvarande. Du vet - det har aldrig varit en mer spännande tid att vara webbutvecklare. Med öppna webbtjänster och datautbyte är det enklare än någonsin att göra något grymt bra. Tänker du att lära dig Nod? Bra. Gå vidare och gör nästa Twitter! Du kommer antagligen också vilja ha en bra grund för Javascript jQuery-biblioteket jQuery-handledning - Komma igång: Grunder och väljare JQuery Handledning - Komma igång: Grunder och väljare I förra veckan pratade jag om hur viktigt jQuery är för en modern webbutvecklare och varför det är grymt bra. Den här veckan tror jag att det är dags att vi fick våra händer smutsiga med lite kod och lärde oss hur ... Läs mer för framsidan.

Utforska mer om: JavaScript, Programmering, Webbdesign, Webbutveckling.