# Modules
Node.js modules zijn herbruikbare stukken code of functionaliteiten. Modules in Node.js bieden een gestructureerde manier om code te organiseren, bevorderen herbruikbaarheid, verbeteren de onderhoudbaarheid, en vergemakkelijken het beheer van dependencies, waardoor ontwikkelaars efficiënter en georganiseerder kunnen werken.
# Soorten modules
Er zijn verschillende soorten modules:
# Gebruik van modules
De require() methode laat ons toe om modules te integreren in Javascript applicaties. Met behulp van deze methode kunnen we externe functionaliteiten oproepen en toegankelijk maken binnen onze Node.js-toepassingen, waardoor een gestructureerde en herbruikbare architectuur ontstaat.
# Syntax
Door een externe module toe te voegen met require(), kunnen we functionaliteiten zoals functies, objecten of variabelen uit van die module worden gebruiken onze eigen code. Dit bevordert de modulariteit en onderhoudbaarheid van onze code.
const fs = require('fs');
// Nu kunnen we de functies van de 'fs'-module gebruiken
fs.readFile(...);
2
3
4
In bovenstaande voorbeeld gebruiken we require('fs') om de ingebouwde filesystem-module (fs) in Node.js te laden, waardoor we toegang krijgen tot bestandsleesfunctionaliteiten.
const _ = require("lodash");
const numbers = [1, 2, 3, 4, 5];
// Gebruik van de 'lodash'-module voor het berekenen van de som.
const sum = _.sum(numbers);
2
3
4
5
6
Hier laden we de externe ‘lodash’-module in en gebruiken we de _.sum()-functie om de som van de array ‘numbers’ te berekenen. Dankzij deze bibliotheek hoeven we zelf geen sum-functie gebruiken.
# Selectievolgorde
De require() methode gaat op zoek naar de module in de een vaste volgorde:
Built-in core modules
Modules zoals
fs,http,readline… moeten niet geïnstalleerd omdat deze deel uitmaken van het ecosysteem.npm Modules
Deze kunnen we downloaden van de Node Package Manager. De gedownloade bestanden vinden we binnen de
node_modulesfolder.lokale modules
Via de referentie
/,./of../op zoek naar bestanden met de volgende extensies:.js.json.mjs.cjs.wasm.node.