2 februari 2012 – Door Lee Jacobson

Inleiding

Dit is het eerste deel in een serie van tutorials die ik wil schrijven over Node.js. Ik moet duidelijk maken dat ik geen expert ben op het gebied van Node.js, maar een goede manier om te controleren of je iets begrijpt is om het aan iemand anders uit te leggen. Als je iets ziet waarvan je denkt dat het niet helemaal juist is, laat het me dan weten zodat ik de fout kan corrigeren, ik zal er zeker voor zorgen dat je de eer krijgt.
Ik heb onlangs besloten om Node.js te leren vanwege de toenemende populariteit. De programmeerindustrie beweegt ongelooflijk snel en het is gevaarlijk om achterop te raken. Het leren van nieuwe talen is belangrijk, want als je dat niet doet is de kans groot dat je achterop raakt en geen baan meer hebt. Denk aan al die Flash ontwikkelaars die geen werk meer kunnen vinden.
Dus laten we beginnen met een beetje informatie (blegh!).
Node.js is een server-side versie van JavaScript. Dat betekent dat alle coole dingen van JavaScript hier van toepassing zijn. Het betekent ook dat als je al redelijk bekend bent met JavaScript je een mooi voordeel hebt. Node.js is nog maar een paar jaar oud en dat betekent dat zelfs de mensen die er al vanaf het begin mee werken, het nog maar een paar jaar gebruiken. Vergelijk dit eens met hoe lang sommige mensen al in C schrijven. Omdat het zo’n nieuwe taal is, betekent het ook dat er niet veel mensen zijn die de taal kennen en dat betekent dat volgens de eenvoudige regel van vraag en aanbod jouw vaardigheden meer waard zijn dan die van de gemiddelde PHP-programmeur.

Hallo-World

Laten we een hallo-World maken. Ga eerst naar http://www.nodejs.org en download node.js. Als het is geïnstalleerd en klaar is, maakt u een nieuw JavaScript-bestand met het volgende:

console.log(“Hello World”);

Sla het bestand nu op, noem het iets als “hello.js” en voer het uit met het volgende commando:

node hello.js

Zo zou u ‘Hallo wereld’ in uw terminal moeten zien verschijnen. Dat is allemaal goed en wel, maar ik weet zeker dat het belangrijker is dat u weet hoe u ‘Hallo wereld’ kunt afdrukken naar nieuwe HTTP-verbindingen.
Open uw teksteditor opnieuw en typ:
Nu slaat u uw bestand op en voert u het uit met:

node hello.js

U zou in de terminal ‘Server gestart’ moeten zien. Geweldig! Open nu je webbrowser en ga naar ‘http://localhost:8080’ je zou je ‘Hello World’ bericht moeten zien.
Laten we onze code eens nader bekijken.
De eerste regel is gewoon het ophalen van de http module en het opslaan in de variabele ‘http’. De http is inbegrepen bij Node.js om het ons gemakkelijk te maken Node.js toepassingen te maken.

We kunnen dan de http module gebruiken om onze http server te maken door de functie ‘createServer’ aan te roepen. Deze functie retourneert een object en neemt een functie als parameter.
We roepen de functie ‘listen’ aan op ons nieuwe server object dat een numerieke waarde inneemt die onze server vertelt op welke poort we willen luisteren. In ons geval gebruiken we poort 8080, daarom hebben we onze browser verbonden met http://localhost:8080
We maken ook een functie en gebruiken die als parameter voor de functie ‘createServer’. Dit is een vrij standaard ding om te doen in JavaScript omdat functies parameters kunnen zijn net zoals variabelen en objecten dat kunnen zijn. Wat er nu gaat gebeuren is dat iedere keer dat onze server een nieuwe verbinding ontvangt op poort 8080, hij de functie uitvoert die we hem gegeven hebben. Interessant genoeg wordt de functie die we doorgeven een anonieme functie genoemd, en hij wordt zo genoemd omdat we hem geen naam geven.
Je hebt misschien gemerkt dat onze anonieme functie twee parameters neemt, ‘request’ en ‘response’. Deze parameters worden aan onze anonieme functie doorgegeven door de HTTP-server wanneer deze een nieuwe verbinding ontvangt. Het zijn beide objecten die we kunnen gebruiken in ons antwoord op het inkomende verzoek.
Je merkt op dat het eerste wat we doen is de ‘writeHead’ functie aanroepen, waarmee we de HTTP status als eerste parameter kunnen instellen en een aantal response headers als tweede parameter kunnen versturen. We stellen de statuscode 200 in, die onze webbrowser vertelt dat alles OK is en we geven ook een ‘Content-Type’ header door, die onze browser laat weten wat we hem sturen. In ons geval is het gewoon tekst.
Naar aanleiding hiervan gebruiken we het response object om ons ‘Hallo Wereld’ te schrijven. Wij doen dit door eenvoudig de schrijf-functie aan te roepen en onze tekst door te geven. Op dit punt zijn we klaar met onze reactie en we vertellen dit aan het reactie-object door de functie ‘einde’ op te roepen.

Onze reactie interessanter maken

Hallo-World is behoorlijk saai, dus laten we iets vermakelijkers doen. We kunnen heel eenvoudig een gebruikersteller maken in Node.js en we hoeven niet eens een database te gebruiken zoals we in PHP zouden kunnen doen.
Maak een nieuw JavaScript-bestand aan met de naam ‘counter.js’ en typ het volgende:
Nu laten we het uitvoeren met het commando,

node counter.js

Wanneer u uw browser navigeert naar ‘http://localhost:8080’ zou u nu een weergaveteller moeten krijgen.
Note: U ziet misschien dat de teller bij elk verzoek met twee omhoog gaat, dit komt omdat uw browser het favicon van de server opvraagt (http://localhost:8080/favicon.ico).
U zou ook moeten zien dat Node.js elk verzoek dat het ontvangt logt naar de console.
Het belangrijkste wat we hier doen is een ‘userCount’-variabele instellen en bij elk verzoek ophogen. Vervolgens schrijven we de ‘userCount’ in de antwoordtekst.
In PHP moet u de informatie opslaan in een tekstbestand of een database om hetzelfde te kunnen doen.

Deze tutorial is ook beschikbaar in het Chinees: http://www.laonan.net/blog/63/
Dank aan laonan voor de vertaling

Als u deze tutorial goed vond, bekijk dan ook deel 2, Node.js voor beginners – Callbacks

Auteur

Hallo, ik ben Lee.
Ik ben een ontwikkelaar uit het Verenigd Koninkrijk die van technologie en zaken houdt. Hier vind je artikelen en tutorials over dingen die me interesseren. Als u me wilt inhuren of meer over me wilt weten, ga dan naar mijn pagina over mij

Sociale links

Tags