Heim  >  Artikel  >  Web-Frontend  >  Vertiefendes Verständnis des Node-Moduls

Vertiefendes Verständnis des Node-Moduls

亚连
亚连Original
2018-05-29 09:18:031652Durchsuche

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

Detaillierte Erläuterung des Einfügens von Rot-Schwarz-Bäumen und Beispiele für Javascript-Implementierungsmethoden

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn