# NodeJS

Node.js is een opensource cross-platform JavaScript runtime, om JavaScript-code server-side uit te voeren. Node.js werkt snel en efficiënt door gebruik te maken van een event-driven architectuur. Hierdoor kan het goed omgaan met gelijktijdige, asynchrone taken.

# Wat is NodeJS?

Node.js laat toe om JavaScript te gebruiken zowel client-side als server-side. Met Node.js kunnen we schaalbare real-time webapplicaties maken. We kunnen een instantie van Node.js gebruiken op de server, hierdoor zijn we in staat om Javascript te gebruiken zowel in de front- als backend.

Hoe werkt node?

Definitie

Node.js is een open-source, server-side JavaScript-runtime die het mogelijk maakt om JavaScript-code buiten een webbrowser uit te voeren. Hierdoor kunnen we dezelfde taal (Javascript) gebruiken voor zowel de client- als serverkant van een applicatie.

# Verschil tussen Node.js en de webbrowser

Zowel Node.js als browsers gebruiken JavaScript, maar het bouwen van webapplicaties voor browsers is anders dan het maken van Node.js-applicaties. Hier zijn de belangrijkste verschillen:

# Interactie met omgeving

  • Webapplicaties

    Wanneer we webapplicaties bouwen, gebruiken we vaak de Document Object Model (DOM) en andere client-side web-API’s, zoals Canvas, Video, Audio, Cookies, en Fetch. Deze tools helpen bij het bouwen van dynamische en interactieve gebruikersinterfaces in de browser.

  • Node.js

    In Node.js-applicaties, hebben we niet de beschikking over deze browser-specifieke functies. Hier richten we ons meer op serverzijde logica, het verwerken van bestanden, en het communiceren met databases. Node.js gebruikt specifieke API’s, zoals het bestandssysteem, die niet standaard beschikbaar zijn in de browser. We hebben niet standaard het window of het document object ter beschikking.

# JavaScript-versies

  • Webapplicaties

    Nieuwere JavaScript-functies die beschikbaar zijn in recentere versies van de taal, kunnen mogelijk niet werken in oudere webbrowsers. Om dit te omzeilen, gebruiken ontwikkelaars vaak compilers zoals Babel (opens new window) of ESBuild (opens new window). Deze tools zetten moderne JavaScript-code om naar een vorm die compatibel is met oudere browsers, zodat de applicatie overal soepel kan draaien.

  • Node.js

    Hier kan de ontwikkelaar kiezen welke versie van Node.js het beste past bij hun applicatie, en kan ook profiteren van de nieuwste JavaScript-functies die beschikbaar zijn in die versie.

# Installatie

Node.js kan geïnstalleerd worden via uitvoerbare bestanden die je kan terugvinden op hun website (opens new window).

We zullen echter als developer vaak moeten wisselen van Node.js-versies. Verschillen in Node.js-versies tussen projecten komen vaak voor doordat oudere projecten zijn gebouwd en getest met specifieke versies, en het behoud van die versies zorgt voor stabiliteit en compatibiliteit met bestaande code en afhankelijkheden.

Het gebruik van Node Version Manager (NVM) biedt ontwikkelaars de mogelijkheid om moeiteloos tussen verschillende Node.js-versies te schakelen, afhankelijk van de vereisten van elk specifiek project.

Daarom wordt bij voorkeur de installatie van Node.js uitgevoerd via Node Version Manager (Afk.: nvm). Met nvm kunnen we verschillende versies van Node.js beheren.

Tip

Met het commando nvm kunnen we nagaan of de installatie gelukt is.

nvm: installatie testen

Via het commando nvm list kunnen we de geinstalleerde Node.js versies opvragen.

nvm: oplijsten node.js versies

Via het commando nvm install 14.15.0 kunnen we een specifieke Node.js versie installeren, in dit geval versie 14.15.0.

nvm: installatie Node.js versie 14.15.0

Om deze Node.js versie te kunnen gebruiken voeren we het volgende commando uit nvm use 14.15.0.

nvm: gebruik maken van versie 14.15.0

Voer je vervolgens het commando nvm list kunnen we de geinstalleerde Node.js versies opvragen. En merken we ook een asterix op naast de actieve versie.

nvm: oplijsten node.js versies

Test de Node.js versie met het commando node -v, v staat voor version.

Versie opvragen van de actieve Node.js versie

# Uitvoeren Node.js scripts via commandline

Om een Node.js applicatie uit te voeren gebruiken we het node commando, dat globaal beschikbaar is op het toestel na de installatie van een Node.js versie, gevolgd door de naam van het bestand.

Als de Node.js applicatiebestand app.js is kunnen we dit als volgt uitvoeren:

node app.js
1

Tip

Zorg ervoor dat je in dezelfde folder zit als het app.js bestand.

# Voorbeeld Node.js applicatie

Een webserver is een server die webverzoeken zal verwerken en webpagina’s of andere bronnen zoals JSON naar de browser te sturen. Het werkt als een achtergrondmotor die verantwoordelijk is voor het afhandelen van HTTP-verzoeken en het leveren van de bijbehorende webinhoud. We kunnen met Node.js een webserver opzetten.

In de realiteit zullen we zelden een server aanmaken met vanilla Javascript maar maken we gebruik van een framework zoals ExpressJS. Het zal ons een eenvoudige en flexibele structuur aanbieden en manueel werk uitsparen.

const http = require("http");

const hostname = "127.0.0.1";
const port = process.env.PORT || 8080;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader("Content-Type", "text/plain");
  res.end("Hello World!\n");
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14

De code vereist eerst de Node.js http module (opens new window). De createServer() methode van het http object maakt een nieuwe HTTP server aan en kent deze toe aan de variabele server. De webserver wordt ingesteld om te luisteren naar een specifieke poort (Eng. port) en hostnaam (Eng. hostname). Wanneer de webserver klaar is, dan wordt de callback functie aangesproken.

Bezoeken we de url http://127.0.0.1:8080, dan wordt er een aanvraag (Eng. request) naar deze server verstuurd. De callback functie (bevat een request event (opens new window)) wordt aangesproken van de server (req, res). De req parameter is een request (opens new window) en res parameter is een response (opens new window). Deze beide parameters zijn essentieel om HTTP aanvragen te verwerken. Via de response sturen we data terug naar de aanvrager.

In dit geval sturen we:

  • de status code van 200 terug om aan te duiden dat de response succesvol is;
  • de omschrijving van het type data dat we teruggeven aan de aanvrager;
  • de content die we wensen terug te sturen.
© 2025 Arteveldehogeschool Laatst bijgewerkt: 7/12/2023 13:25:46