0. CommonJS: Importeren met require

In JavaScript kun je modules of bestanden importeren in een ander bestand om zo functies, objecten of data te hergebruiken. Dit helpt bij het organiseren van code in kleinere, beheersbare stukken en ondersteunt herbruikbaarheid en onderhoud. Een veelgebruikte manier om dit te doen, vooral in Node.js omgevingen of oudere JavaScript projecten, is door gebruik te maken van de require functie.

De require functie is specifiek voor Node.js en wordt gebruikt om modules te laden. Wanneer je require gebruikt, geef je het pad naar het bestand of de naam van de module op, en de functie retourneert het geëxporteerde object van die module.

Voorbeeld enkele export

In het onderstaande voorbeeld wordt de functie som uit het bestand math.js geïmporteerd in het bestand app.js.

function som(a, b) {
  return a + b;
}

module.exports = som;
const som = require('./math');

console.log(som(5, 3)); // Output: 8

Voorbeeld meervoudige export

Wil je meerdere functies of variabelen uit een bestand exporteren, dan plaats je deze bij het exporteren tussen accolades.

function som(a, b) {
  return a + b;
}

function vermenigvuldig(a, b) {
  return a * b;
}

module.exports = { som, vermenigvuldig };

Na het importeren verwijs je naar de respectievelijke functies met behulp van de zogenaamde puntnotatie waarbij je eerst verwijst naar constante die je aan het geïmporteerde bestand hebt gekoppeld. Vervolgens benoem je de variabele of de functie die uit dat bestand wordt geëxporteerd.

const rekenen = require('./math');

console.log(rekenen.som(5, 3)); // Output: 8
console.log(rekenen.vermenigvuldig(5, 3)); // Output: 15

<aside> 💡 Bovenstaande manier van importeren en exporteren is de CommonJS manier. Dit is de traditionele manier en veel Node modules ondersteunen alleen deze manier. Het is dus de meest veilige keuze voor nu.

De nieuwere manier van importeren is met behulp van zogenaamde ES modules. Deze wordt hieronder toegelicht.

</aside>

1. Toelichting

Een module in JavaScript is een afzonderlijk bestand dat is ontworpen om herbruikbare functionaliteiten, variabelen, en/of functies te bevatten met als doel ze beschikbaar te stellen voor gebruik in andere delen van een applicatie. Modules dienen verschillende doelen om de code van applicaties met grote hoeveelheden bestanden overzichtelijker en onderhoudsvriendelijker te maken.