Detaillierte Erläuterung der Laderegeln der require-Methode in node.js

Detaillierte Erläuterung der Laderegeln der require-Methode in node.js

Laderegeln der Require-Methode

  1. Laden aus dem Cache priorisieren
  2. Kernmodule
  3. Module in Form von Pfaden
  4. Module von Drittanbietern

1. Priorisieren Sie das Laden aus dem Cache

main.js: Ausführen und Laden eines JS-Moduls

erfordern('./a')

a.js: führt das Modul b.js aus, lädt es und gibt aus, dass a geladen ist

erfordern('./b')
console.log('a.js ist geladen')

b.js: Ausgabe b wird geladen

console.log('b.js ist geladen')

Ergebnis:

Bildbeschreibung hier einfügen

Es ist ersichtlich, dass: main a.js lädt und dann beim Laden von b.js nicht zweimal ausgibt, dass a.js geladen wird. Node entnimmt den Exportwert des Objekts entsprechend der übergebenen ID direkt aus require.cache und führt den Modulcode nicht erneut aus.

2. Kernmodule

Das Wesentliche des Kernmoduls ist ebenfalls eine Datei. Die Kernmoduldatei wurde in die Binärdatei kompiliert. Wir müssen sie nur entsprechend dem Namen laden. wie:

  • erfordern('fs')
  • erfordern('http')

3. Pfadbasierte Module

Das pfadbasierte Modul, über das wir sprechen, lädt tatsächlich die von Ihnen geschriebene JS-Datei. Es gibt vier Möglichkeiten, sie zu laden.

var fooExports = require('./index') //Relativer Pfad, häufig verwendet var fooExports = require('../index') //Relativer Pfad, häufig verwendet var fooExports = require('/index') //Stammverzeichnis, wird nicht häufig verwendet var fooExports = require('D:/demo/index') //Stammverzeichnis, wird nicht häufig verwendet

4. Module von Drittanbietern

  1. Alle Module von Drittanbietern müssen über npm heruntergeladen werden
  2. Wenn Sie es verwenden, können Sie es laden, indem Sie ('Paketname') anfordern.
  3. Es ist unmöglich, dass ein Drittanbieterpaket denselben Namen wie ein Kernmodul hat.

Es ist weder ein Kernmodul noch ein pfadbasiertes Modul oder ein Drittanbietermodul. Die Lademethode ist wie folgt

Nehmen wir als Beispiel var template = require('art-template'):

  • Suchen Sie zunächst das Verzeichnis node_modules im Verzeichnis, in dem sich die aktuelle Datei befindet
  • Suchen Sie dann das Hauptattribut in der Datei wie folgt
  • Das Hauptattribut zeichnet das Eingabemodul der Kunstvorlage auf
  • Dann laden und verwenden Sie dieses Drittanbieterpaket, aber in der Tat ist die endgültige Ladung immer noch die Datei
  • Wenn die Datei package.json nicht existiert oder das von main angegebene Einstiegsmodul nicht existiert
  • Dann findet Node automatisch index.js im Verzeichnis, was bedeutet, dass index.js als Standardoption verwendet wird.
  • Wenn keine der oben genannten Bedingungen erfüllt ist, wird das Verzeichnis node_modules im übergeordneten Verzeichnis durchsucht.
  • Wenn es auf der vorherigen Ebene nicht vorhanden ist, suchen Sie weiter auf der vorherigen Ebene.
  • Wenn das aktuelle Stammverzeichnis der Festplatte immer noch nicht gefunden wird, wird eine Fehlermeldung ausgegeben: Modul xxx kann nicht gefunden werden

Suchreihenfolge für Drittanbietermodule: node_modules/art-template > Datei package.json > Haupteigenschaft > index.js

Dies ist das Ende dieses Artikels mit der detaillierten Erklärung der Laderegeln der require-Methode in node.js. Weitere relevante Inhalte zu den Laderegeln der require-Methode von node.js finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Einführung in die require.resolve-Methode in Node.js
  • Einfache Simulation des erforderlichen Lademechanismus in node.js
  • Interpretation des Node.js require()-Quellcodes
  • Detaillierte Erklärung von require in node.js
  • Node.js verwendet die Funktion require() zum Laden von Modulen
  • Eine kurze Analyse des Funktionsprinzips von require in Node.js

<<:  Detaillierte Erläuterung der grundlegenden Befehle der Firewalld-Firewall in Centos7

>>:  Praktische Methode zum Löschen einer Zeile in einer MySql-Tabelle

Artikel empfehlen

So ändern Sie das Kennwort von mysql5.7.20 unter Linux CentOS 7.4

Nach dem Upgrade von MySQL auf Version 5.7 wurde ...

Tipps zur MySql-SQL-Optimierung teilen

Eines Tages stellte ich fest, dass die Ausführung...

Mobile Web-Bildschirmanpassung (rem)

Vorwort Ich habe vor Kurzem meine bisherigen Noti...

So installieren Sie Django in einer virtuellen Umgebung unter Ubuntu

Führen Sie die folgenden Vorgänge im Ubuntu-Befeh...

Beispielcode einer SVG-Schaltfläche basierend auf einer CSS-Animation

Der spezifische Code lautet wie folgt: <a href...

Details der benutzerdefinierten Vue-Anweisung

Inhaltsverzeichnis 1. Hintergrund 2. Lokale benut...

JavaScript-Implementierung des Spiels des Lebens

Inhaltsverzeichnis Konzept-Einführung Logische Re...

Detaillierte Erklärung des JSON-Dateischreibformats

Inhaltsverzeichnis Was ist JSON Warum diese Techn...

Detaillierte Erklärung gängiger Befehle im Docker-Repository

Einloggen Docker-Anmeldung Schließen Sie die Regi...

9 praktische CSS-Eigenschaften, die Web-Frontend-Entwickler kennen müssen

1. Abgerundete Ecken Heutige Webdesigns halten stä...

Detaillierte Erklärung, wie zwei Node.js-Prozesse kommunizieren

Inhaltsverzeichnis Vorwort Kommunikation zwischen...