Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Hoe Node.js Modules Laadt | Sectie
Node.js Basisprincipes

bookHoe Node.js Modules Laadt

Veeg om het menu te tonen

Om effectief met modules in Node.js te werken, is het noodzakelijk te begrijpen hoe Node.js deze modules vindt en laadt. Dit proces wordt module-resolutie genoemd. Wanneer de require-functie wordt gebruikt om een module te importeren, volgt Node.js een specifiek algoritme om het gevraagde bestand of pakket te lokaliseren. Het resolutieproces houdt rekening met bestandsextensies, mappenstructuur en zelfs de aanwezigheid van speciale bestanden zoals package.json.

Node.js controleert eerst of de vereiste module een core module is, zoals fs of http. Als het geen core module is, behandelt Node.js de opgegeven string bij require als een relatief pad (beginnend met ./ of ../), een absoluut pad, of een modulenaam. Voor relatieve en absolute paden probeert Node.js het bestand te vinden door de volgende stappen in volgorde te controleren:

  • Of het exacte bestand bestaat met de opgegeven naam;
  • Of het bestand bestaat met een toegevoegde .js extensie;
  • Of het bestand bestaat met een toegevoegde .json extensie;
  • Of het bestand bestaat met een toegevoegde .node extensie.

Als het pad naar een map verwijst, zoekt Node.js naar een package.json bestand in die map. Indien aanwezig, gebruikt Node.js het main veld om te bepalen welk bestand geladen moet worden. Als er geen package.json of geen main veld is, zoekt Node.js naar een index.js, index.json of index.node bestand in de map.

Wanneer een module op naam (en niet op pad) wordt vereist, zoekt Node.js in de node_modules mappen, beginnend bij de huidige map en vervolgens omhooggaand in de mappenstructuur tot aan de root.

app.js

app.js

copy
Note
Opmerking

Node.js slaat modules in de cache op nadat ze voor het eerst zijn geladen. Dit betekent dat als dezelfde module meerdere keren wordt vereist, deze slechts één keer wordt uitgevoerd; latere aanroepen retourneren hetzelfde gecachte object. Dit verbetert de prestaties en consistentie binnen de applicatie.

question-icon

Vul de open plekken in:
Wanneer je require('./moduleName') gebruikt in Node.js, controleert het module-resolutie-algoritme in de volgende volgorde:

  1. Of er een bestand met de naam moduleName bestaat;
  2. Of er een bestand met de naam moduleName.___1___ bestaat;
  3. Of er een bestand met de naam moduleName.___2___ bestaat;
  4. Of er een bestand met de naam moduleName.___3___ bestaat.

Klik of sleep items en vul de lege plekken in

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 11

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 1. Hoofdstuk 11
some-alt