Dieser Artikel führt hauptsächlich in ein tiefgreifendes Verständnis des Node-Moduls ein. Jetzt teile ich es mit Ihnen und gebe ihm eine Referenz.
Bei der Entwicklung komplexer Webanwendungen ist es normalerweise erforderlich, jede Funktion aufzuteilen, in verschiedene Dateien zu kapseln und bei Bedarf auf die Datei zu verweisen, d. h. eine modulare Verwaltung des Codes. Fast alle Programmiersprachen verfügen über eigene Modulorganisationsmethoden, z. B. Pakete in Java und Assemblys in C#, und Node übernimmt die CommonJS-Modulspezifikation.
Modulspezifikation
CommonJS zielt darauf ab, JS zu standardisieren, das außerhalb des Browsers ausgeführt wird, und hat eine große Anzahl von JS-Problemen gelöst (z. B. globale Benennung). Konflikte). In der CommonJS-Implementierung von Node wird jedes Modul in einer separaten JS-Datei gekapselt, d. h. eine Datei ist ein Modul und der Dateipfad ist der Modulname. Beim Schreiben jedes Moduls stehen die folgenden drei vordefinierten Variablen zur Verfügung:
require()
Diese Funktion wird im aktuellen Modul verwendet. Um andere Module zu laden und zu verwenden, übergeben Sie in einem Modulnamen und geben ein Modulexportobjekt zurück. Der Modulname kann einen relativen Pfad (beginnend mit ./) oder einen absoluten Pfad (beginnend mit / oder einem Laufwerksbuchstaben wie C:) verwenden. Außerdem kann die Erweiterung .js im Modulnamen weggelassen werden. Zu diesem Zeitpunkt sucht Node nach einem Ordner mit demselben Namen. Wenn er nicht gefunden wird, sucht er nach einer JS-Datei mit demselben Namen. Sie können diese Funktion auch zum Laden und Verwenden einer JSON-Datei verwenden, die Erweiterung .json darf jedoch nicht weggelassen werden.
Exporte
Dieses Objekt ist das Exportobjekt des aktuellen Moduls und wird zum Exportieren der öffentlichen Methoden und Eigenschaften des Moduls verwendet. Standardmäßig ist es ein leeres Objekt {}. Wenn andere Module das aktuelle Modul über die Funktion require() verwenden, erhalten sie das Exportobjekt des aktuellen Moduls. Eine öffentliche Methode wird im folgenden Code exportiert:
exports.hello = function() { console.log("Hello World!"); };
module
Dieses Objekt wird verwendet, um Metadaten und andere verwandte Informationen des aktuellen Moduls bereitzustellen, ist jedoch am nützlichsten Die Sache ist, es zu verwenden. Das Exportattribut ersetzt das Exportobjekt des aktuellen Moduls. Beispielsweise ist das Modul-Exportobjekt standardmäßig ein normales Objekt. Sie können es mit der folgenden Methode in eine Funktion umwandeln:
module.exports = function() { console.log("Hello World!"); };
Hinweis: Bei Verwendung der oben genannten Methode werden alle Änderungen am Exportobjekt vorgenommen ignoriert!
Modulinitialisierung
Der JS-Code in einem Modul wird nur einmal ausgeführt, wenn das Modul zum ersten Mal verwendet wird, und wird dabei initialisiert Ausführung Das exportierte Objekt des Moduls. Später wird das zwischengespeicherte Exportobjekt wiederverwendet.
Definieren Sie ein Modul in test.js
//定义私有变量 var name = ""; function setName(n) { name = n; } function logName() { console.log(name); } //导出公有方法 exports.setName = setName; exports.logName = logName;
Laden Sie das Testmodul in main
//加载test模块 var test1 = require("./test.js"), test2 = require("./test.js"); //使用test1 test1.setName("Neo"); //使用test2 test2.logName(); //Neo
Sichtbar, egal wie oft require() aufgerufen wird, das gleiche Modul ist Nur einmal geladen. Die mehrmals erhaltene Referenz ist tatsächlich dieselbe Instanz.
Hauptmodul
Das Modul, das über Befehlszeilenparameter zum Starten des Programms an Node übergeben wird, wird als Hauptmodul bezeichnet. Das Hauptmodul ist verantwortlich für die Planung und Erstellung der gesamten Anwendung. Andere Module des Programms arbeiten zusammen. Wenn Sie das Programm beispielsweise über die folgende Befehlszeile starten, ist main.js das Hauptmodul:
$ node main.js
Binary module
Node can Das Schreiben von Modulen unterstützt zusätzlich zu JS auch das Schreiben von Binärmodulen in C/C++. Die kompilierten Binärmodule können auf die gleiche Weise wie JS-Module verwendet werden, mit der Ausnahme, dass die Dateierweiterung .node ist. Obwohl Binärmodule alle vom Betriebssystem bereitgestellten Funktionen nutzen können, ist ihre plattformübergreifende Nutzung schwierig.
Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.
Verwandte Artikel:
JS-Zusammenfassung der Methoden zum Konvertieren von Nicht-Array-Objekten in Arrays
js+canvas implementiert Schiebepuzzle-Verifizierungscode Funktion
Das obige ist der detaillierte Inhalt vonVertiefendes Verständnis des Node-Moduls. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!