Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Hvordan Node.js Indlæser Moduler | Sektion
Node.js Grundlæggende

bookHvordan Node.js Indlæser Moduler

Stryg for at vise menuen

For at arbejde effektivt med moduler i Node.js, er det nødvendigt at forstå, hvordan Node.js finder og indlæser dem. Denne proces kaldes modulopløsning. Når du bruger funktionen require til at importere et modul, følger Node.js en specifik algoritme for at lokalisere den fil eller pakke, du anmoder om. Opløsningsprocessen tager højde for filendelser, mappestruktur og endda tilstedeværelsen af specielle filer som package.json.

Node.js kontrollerer først, om det modul, du kræver, er et kernemodul, såsom fs eller http. Hvis det ikke er et kernemodul, behandler Node.js den streng, du sender til require, som enten en relativ sti (starter med ./ eller ../), en absolut sti eller et modulnavn. For relative og absolutte stier forsøger Node.js at opløse filen ved at kontrollere følgende i rækkefølge:

  • Om den nøjagtige fil eksisterer med det angivne navn;
  • Om filen eksisterer med en .js-endelse tilføjet;
  • Om filen eksisterer med en .json-endelse tilføjet;
  • Om filen eksisterer med en .node-endelse tilføjet.

Hvis stien peger på et bibliotek, vil Node.js lede efter en package.json-fil i det bibliotek. Hvis den finder en, vil den bruge main-feltet til at bestemme, hvilken fil der skal indlæses. Hvis der ikke er nogen package.json eller intet main-felt, vil Node.js lede efter en index.js, index.json eller index.node fil i biblioteket.

Hvis du kræver et modul ved navn (ikke en sti), vil Node.js søge efter det i node_modules-mapperne, startende fra den aktuelle mappe og derefter bevæge sig op gennem mappestrukturen, indtil den når roden.

app.js

app.js

copy
Note
Bemærk

Node.js cacher moduler efter første indlæsning. Dette betyder, at hvis du kræver det samme modul flere gange, bliver det kun eksekveret én gang, og senere kald returnerer det samme cachede objekt. Dette forbedrer ydeevnen og konsistensen i hele din applikation.

question-icon

Udfyld de tomme felter:
Når du bruger require('./moduleName') i Node.js, tjekker modulopløsningsalgoritmen i følgende rækkefølge:

  1. Hvis en fil med navnet moduleName findes;
  2. Hvis en fil med navnet moduleName.___1___ findes;
  3. Hvis en fil med navnet moduleName.___2___ findes;
  4. Hvis en fil med navnet moduleName.___3___ findes.

Klik eller træk`n`drop elementer og udfyld hullerne

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 11

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 1. Kapitel 11
some-alt