# Custom modules

In Node.js kunnen custom modules worden gemaakt om code te organiseren en herbruikbaarheid te bevorderen. Een custom module is een JavaScript-bestand waarin je functionaliteit definieert en die je vervolgens kunt gebruiken in andere delen van je applicatie.

# Aanmaken van custom modules

Schrijf je gewenste functionaliteit in een JavaScript-bestand, bijvoorbeeld mijnModule.js.

mijnModule.js

function greetings(name) {
  console.log(`Hallo, ${name}!`);
}
1
2
3

geometryModule.js

// geometryModule.js
const PI = Math.PI;

function calculateCircleArea(radius) {
  return PI * radius * radius;
}

function calculateRectangleArea(length, width) {
  return length * width;
}

// Using module.exports to make functions available
module.exports = {
  calculateCircleArea,
  calculateRectangleArea,
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# Exporteren van je module

Gebruik module.exports of exports om aan te geven welke delen van je module beschikbaar moeten zijn voor andere bestanden.

# module.exports

Gebruik module.exports wanneer je de volledige module wilt vervangen door éen enkele waarde of object.

mijnModule.js

function greetings(name) {
  console.log(`Hallo, ${name}!`);
}

module.exports = greetings;
1
2
3
4
5

geometryModule.js

// geometryModule.js
const PI = Math.PI;

function calculateCircleArea(radius) {
  return PI * radius * radius;
}

function calculateRectangleArea(length, width) {
  return length * width;
}

// Module.exports gebruiken om functies beschikbaar te maken
module.exports = {
  calculateCircleArea,
  calculateRectangleArea,
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# exports

exports is een kortere notatie voor module.exports en wordt vaak gebruikt wanneer je meerdere dingen aan de module wilt toevoegen.

mijnModule.js

exports.greetings = function (name) {
  console.log(`Hallo, ${name}!`);
};

exports.farewell = function (name) {
  console.log(`Vaarwel, ${name}!`);
};
1
2
3
4
5
6
7

geometryModule.js

exports.calculateCircleArea = function (radius) {
  return PI * radius * radius;
};

exports.calculateRectangleArea = function (length, width) {
  return length * width;
};
1
2
3
4
5
6
7

Tip

Wanneer exports vs module.exports gebruiken:

  • Gebruik exports om:
    • named function te exporteren, zoals exports.calculateCircleArea, exports.sum
  • Gebruik module.exports om:
    • een object, klasse if functie op root niveau te exporteren
    • een object met verschillende toekenningen, zoals module.exports = {calculateCircleArea, sum}

# Module importeren

In een ander JavaScript-bestand kun je de gemaakte module importeren en gebruiken.

app.js

// app.js
const begroet = require("./mijnModule");

begroet("John");
// Output: Hallo, John!
1
2
3
4
5

main.js

// app.js
const geometryModule = require("./geometryModule");

const circleArea = geometryModule.calculateCircleArea(5);
const rectangleArea = geometryModule.calculateRectangleArea(4, 6);

console.log("Oppervlakte van de cirkel:", circleArea);
console.log("Oppervlakte van de rechthoek:", rectangleArea);
1
2
3
4
5
6
7
8

In bovenstaand voorbeeld is geometryModule gelijk aan een object. Dit wil zeggen dat we code kunnen inkorten door de functies te destructuren uit de module.

// app.js
const {
  calculateCircleArea,
  calculateRectangleArea,
} = require("./geometryModule");

console.log("Oppervlakte van de cirkel:", calculateCircleArea(5));
console.log("Oppervlakte van de rechthoek:", calculateRectangleArea(4, 6));
1
2
3
4
5
6
7
8
© 2025 Arteveldehogeschool Laatst bijgewerkt: 16/12/2024 12:33:01