Wie Node.js Module Lädt
Swipe um das Menü anzuzeigen
Um effektiv mit Modulen in Node.js zu arbeiten, ist es notwendig zu verstehen, wie Node.js diese findet und lädt. Dieser Vorgang wird als Modulauflösung bezeichnet. Wenn die require-Funktion zum Importieren eines Moduls verwendet wird, folgt Node.js einem bestimmten Algorithmus, um die angeforderte Datei oder das Paket zu finden. Der Auflösungsprozess berücksichtigt Dateiendungen, Ordnerstrukturen und sogar das Vorhandensein spezieller Dateien wie package.json.
Zunächst prüft Node.js, ob das angeforderte Modul ein Kernmodul ist, wie beispielsweise fs oder http. Ist dies nicht der Fall, behandelt Node.js den an require übergebenen String entweder als relativen Pfad (beginnend mit ./ oder ../), als absoluten Pfad oder als Modulnamen. Für relative und absolute Pfade versucht Node.js, die Datei in folgender Reihenfolge aufzulösen:
- Ob die Datei mit dem angegebenen Namen exakt existiert;
- Ob die Datei mit einer angehängten
.js-Erweiterung existiert; - Ob die Datei mit einer angehängten
.json-Erweiterung existiert; - Ob die Datei mit einer angehängten
.node-Erweiterung existiert.
Zeigt der Pfad auf ein Verzeichnis, sucht Node.js nach einer package.json-Datei in diesem Verzeichnis. Wird eine solche gefunden, verwendet Node.js das Feld main, um zu bestimmen, welche Datei geladen werden soll. Gibt es keine package.json oder kein main-Feld, sucht Node.js nach einer Datei namens index.js, index.json oder index.node im Verzeichnis.
Wird ein Modul über seinen Namen (nicht über einen Pfad) angefordert, durchsucht Node.js die node_modules-Verzeichnisse, beginnend im aktuellen Verzeichnis und dann aufsteigend im Verzeichnisbaum bis zum Wurzelverzeichnis.
app.js
Node.js cached Module nach dem ersten Laden. Das bedeutet, dass bei mehrfacher Anforderung desselben Moduls dieses nur einmal ausgeführt wird; spätere Aufrufe liefern dasselbe zwischengespeicherte Objekt zurück. Dies verbessert die Leistung und Konsistenz innerhalb der Anwendung.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen