Wat is Node.JS en waarom zou ik erom geven? [Webontwikkeling]
JavaScript is slechts een client-side programmeertaal die in de browser draait, toch? Niet meer. Node.js is een manier om JavaScript op de server uit te voeren; maar het is zoveel meer ook. Als je helemaal geïnteresseerd bent in webontwikkeling, zou je echt iets over Node te weten moeten komen en waarom het golven in de gemeenschap maakt.
Wat is Node.js?
Node is een interface naar de V8 JavaScript-runtime - de supersnelle JavaScript-interpreter die wordt uitgevoerd in de Chrome-browser. Je kunt namelijk ook V8 downloaden en in alles insluiten; Node doet dat, voor webservers. JavaScript is immers slechts een taal - er is niets dat zegt dat het niet op zowel een server als in de browser van de gebruiker kon worden gebruikt. In een typische LAMP-serverstack Een Apache-webserver instellen in 3 eenvoudige stappen Hoe installeer je een Apache-webserver in 3 eenvoudige stappen Wat de reden ook is, je wilt op een gegeven moment een webserver op gang krijgen. Of je jezelf op afstand toegang wilt geven tot bepaalde pagina's of diensten, je wilt een community ... Lees meer, je hebt een onderliggende Apache of NGINX webserver, met PHP erbovenop. Elke nieuwe verbinding met de server levert een nieuwe thread op en het is heel gemakkelijk om snel prestaties te verliezen of voor een site “ga naar beneden” - de enige manier om meer gebruikers te ondersteunen bij het toevoegen van meer servers. Het schaalt gewoon niet goed. Met Node is dit niet het geval. Er is geen Apache om te luisteren naar inkomende verbindingen en om HTTP-statuscodes terug te geven - je zult die kernserverarchitectuur zelf moeten afhandelen. Gelukkig zijn er modules om dit gemakkelijker te maken, maar het kan nog steeds een beetje overweldigend zijn als je begint. Het resultaat is echter een krachtige webapplicatie.
JavaScript is een op gebeurtenissen gebaseerde taal jQuery Tutorial (Deel 4) - Event Luisteraars jQuery Tutorial (Deel 4) - Event Luisteraars Vandaag gaan we een tandje bijsteken en laten we echt zien waar jQuery schijnt - evenementen. Als u de eerdere zelfstudies hebt gevolgd, zou u nu een redelijk goed begrip van de basiscode moeten hebben ... Lees meer, dus alles wat er op de server gebeurt, activeert een niet-blokkerende gebeurtenis. Elke nieuwe verbinding vuurt een gebeurtenis af; gegevens die worden ontvangen van een uploadformulier, vuren een gegevens ontvangen gebeurtenis; het opvragen van gegevens uit de database vuurt een gebeurtenis af. In de praktijk betekent dit dat een knooppuntsite nooit wordt vergrendeld en tienduizenden gelijktijdige gebruikers kan ondersteunen. Node.js speelt de rol van de server - Apache - en interpreteert de toepassingscode die daar bovenop wordt uitgevoerd. Net als Apache zijn er verschillende modules (bibliotheken) die kunnen worden geïnstalleerd om functies en functionaliteit toe te voegen, zoals gegevensopslag, ondersteuning voor zip-bestanden, Facebook-login of betalingsgateways. Natuurlijk zijn er niet zo veel als voor PHP, maar Node bevindt zich nog in de beginfase en er is een sterke community achter. Een kernconcept van Node is asynchroon functies - dus alles draait in principe op de achtergrond. Bij de meeste scriptingtalen aan de serverkant moet het programma wachten terwijl elke functie is voltooid voordat u verder gaat met de volgende. Met Node geeft u functies op die moeten worden uitgevoerd als iets anders is voltooid, terwijl de rest van uw app verdergaat. Het is een complex onderwerp waar ik vandaag niet te diep op inga, maar een van die kenmerken die Node definieert, dus het is belangrijk om het te begrijpen. Genoeg chatten - hier is een voorbeeld HTTP-server van Hallo World om een snel idee te geven van enkele van deze concepten.
var http = require ("http"); http.createServer (functie (verzoek, antwoord) response.writeHead (200, 'Content-type': 'text / plain'); response.write ('Hello World!'); response.end (); ) .Luister (8080); console.log ("Server draait!");
Laten we proberen dat te doorbreken. Ten eerste nemen we de http-module in het project. We maken vervolgens een server en geven een anonieme functie door als parameter - deze functie wordt gebruikt voor elke nieuwe verbinding die wordt gemaakt. Er zijn twee argumenten voor nodig - verzoek, met de verzoekparameters van de gebruiker; en antwoord, die we zullen gebruiken om dingen terug te sturen. Vervolgens gebruiken we het antwoordobject om een koptekst terug te schrijven naar de gebruiker met de HTTP-antwoordcode 200 (“OK”) en inhoudstype, schrijven a “Hallo Wereld!” bericht en het beëindigen van het antwoord. Ten slotte vertellen we de server om te luisteren op poort 8080 voor inkomende verzoeken en een snel bericht naar de console (de opdrachtregel) te sturen om ons te laten weten dat het actief is. Als u dit voor uzelf wilt proberen, slaat u de bovenstaande code op als test.js, download het Node-installatieprogramma en voer de opdrachtregel uit -
node test.js
Open een browser en ga naar localhost: 8080 om uw testapp te bekijken! Je zou nu een klein idee moeten hebben van hoe dit hele asynchrone ding werkt, samen met event-driven modellen. Als je nog niet bekend bent met JavaScript, is het concept van het doorgeven van functies als argumenten voor andere functies waarschijnlijk een beetje vreemd.
Waarom Node gebruiken?
Ten eerste voor prestaties en schaalbaarheid. Node is snel. Dat is een vrij belangrijke vereiste wanneer u een start-up bent die probeert het volgende groots te maken en ervoor wilt zorgen dat u snel kunt opschalen door met een toestroom van gebruikers om te gaan terwijl uw site groeit. Knooppunt is ook perfect voor het aanbieden van een RESTful API - een webservice die enkele invoerparameters in beslag neemt en een beetje gegevens doorgeeft - eenvoudige gegevensmanipulatie zonder een enorme hoeveelheid berekening. Node kan duizenden van deze tegelijkertijd verwerken waar PHP gewoon zou instorten. Prestatie-voordelen en schaalbaarheid terzijde, de kans is groot dat u al wat JavaScript kent, dus waarom zou u een hele nieuwe taal zoals PHP proberen te leren? En dan - er is de opwinding om iets nieuws en relatief niet in kaart gebracht te leren. Je weet wanneer er iets nieuws aankomt en wordt dan zo alomtegenwoordig dat je er spijt van hebt dat je het niet eerder hebt geleerd, voor altijd catchup speelt? Doe dit deze keer niet. Node wordt groot.
minpunten
Zoals de meeste nieuwe technologieën, is het niet zo gemakkelijk om Node op bestaande hosts te implementeren. Als u een gedeelde webhosting heeft, kunt u niet zomaar een Node-app uploaden en verwachten dat deze werkt. VPS en dedicated servers zijn beter gepositioneerd - u kunt Node op hen installeren. Nog eenvoudiger is het om een schaalbare service zoals Heroku te gebruiken, die volledig gratis is om uw site verder te ontwikkelen - u hoeft alleen te betalen wanneer u meer bronnen nodig heeft. Ik gaf een voorbeeld van het gebruik van Heroku voordat we het gebruikten om een Facebook-fangate te maken, maar het kan ook voor Node worden gebruikt. Aan de andere kant is het heel eenvoudig om Node lokaal op uw Windows-, Mac- of Linux-pc te installeren en meteen te ontwikkelen - ga gewoon naar Download Node. Het is ook belangrijk op te merken dat Node niet simpelweg een vervanging is voor Apache - bestaande webapplicaties zijn niet compatibel en u zult vanaf nul werken (hoewel er veel frameworks beschikbaar zijn om u te helpen met algemene functies). Het andere belangrijke nadeel van node is dat het nog in de beginfase van ontwikkeling is, wat betekent dat sommige functies waarschijnlijk zullen veranderen naarmate de ontwikkeling vordert. Als u de documentatie bekijkt, bevat deze zelfs een stabiliteitsindex, die laat zien hoe risicovol gebruik van elke functie momenteel is. Weet je - het is nooit een opwindender moment geweest om een webontwikkelaar te zijn. Met open webservices en gegevensuitwisseling is het gemakkelijker dan ooit om iets te maken geweldig. Denk je aan het leren van Node? Goed. Ga verder en maak de volgende Twitter! Je zult waarschijnlijk ook een goede basis willen hebben van de Javascript jQuery-bibliotheek jQuery Tutorial - Aan de slag: Basics & Selectors jQuery Tutorial - Aan de slag: Basics & Selectors Vorige week sprak ik over hoe belangrijk jQuery is voor elke moderne webontwikkelaar en waarom het is geweldig. Deze week denk ik dat het tijd is om onze handen vuil te maken met wat code en te leren hoe ... Lees meer voor de voorkant.
Ontdek meer over: JavaScript, Programmeren, Webontwerp, Webontwikkeling.