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

Detaillierte Erläuterung des Lese-Commits der MySQL-Transaktionsisolationsebene

MySQL-Transaktionsisolationsebene anzeigen mysql&...

VScode Remote SSH-Remote-Bearbeitung und -Debugging von Code

Die neueste Insider-Version von Visual Studio Cod...

Anwendungsverschachtelung von HTML-ul-ungeordneten Tabellen

Anwendungsschachtelung ungeordneter Listen Code ko...

Implementierung der Docker-Bereitstellung von Tomcat- und Webanwendungen

1. Docker online herunterladen yum install -y epe...

Detaillierte Erklärung gängiger Befehle in MySQL 8.0+

Aktivieren Sie den Fernzugriff Aktivieren Sie die...

So finden Sie den angegebenen Inhalt einer großen Datei in Linux

Denken Sie im Großen und im Kleinen und lenken Si...

Grundlegende Schritte zur Sicherheitseinstellung für den CentOS7-Server

Schalten Sie den Ping-Scan aus, obwohl dies nicht...

So fragen Sie doppelte Daten in einer MySQL-Tabelle ab

INSERT INTO hk_test(Benutzername, Passwort) VALUE...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.24

MySQL ist das beliebteste relationale Datenbankma...

Der DOCTYPE-Modusauswahlmechanismus bekannter Browser

Dokumentumfang Dieser Artikel behandelt den Modus...