Heim >Web-Frontend >js-Tutorial >Was ist die CommonJS-Spezifikation? Verstehen Sie die CommonJS-Spezifikation
Der Inhalt dieses Artikels befasst sich mit der CommonJS-Spezifikation. Das Verständnis der CommonJS-Spezifikationen hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen.
steht vorne:
Eine Datei ist ein Modul.
Darüber hinaus muss der Beispielcode in diesem Artikel normal in der node.js-Umgebung ausgeführt werden, andernfalls tritt ein Fehler auf. Tatsächlich ist ES6 bereits in der Modulspezifikation enthalten. Wenn Sie die ES6-Modulspezifikation verwenden, benötigen Sie keine node.js-Umgebung. Daher muss die commonJS-Spezifikation von der ES6-Modulspezifikation unterschieden werden.
1. Warum wurde die CommonJS-Spezifikation entwickelt?
Im Backend liegt die JavaScript-Spezifikation weit zurück und weist viele Mängel auf, was die Entwicklung umfangreicher Anwendungen mit JavaScript erschwert. Zum Beispiel:
Kein Modulsystem
Wenige Standardbibliotheken
Keine Standardschnittstelle
Fehlendes Paketverwaltungssystem
Inhalt auflisten
Die CommonJS-Spezifikation wird hauptsächlich für vorgeschlagen Um den Mangel an Standards in JavaScript auszugleichen, hat es das Stadium der Entwicklung großer Anwendungen wie Python, Ruby und Java erreicht, anstatt bei der Entwicklung kleiner browserseitiger Skripte zu bleiben.
2. CommonJS-Modulspezifikation
Die CommonJS-Modulspezifikation ist hauptsächlich in drei Teile unterteilt: Modulreferenz, Moduldefinition und Modulidentifikation.
1. Modulreferenz
Wenn Sie die folgende Anweisung in einer.js-Datei verwenden, bedeutet
var math=require('math');
, dass Sie die Methode require() verwenden, das Mathematikmodul einführen und zuweisen zur Variablen math . Tatsächlich muss der benannte Variablenname nicht mit dem eingeführten Modulnamen identisch sein, sondern nur so:
var Math=require('math');
Die Bedeutung der Zuweisung besteht darin, dass in a.js nur Mathematik erkannt wird, da dies der Fall ist eine definierte Variable und kann Mathematik nicht erkennen, da Mathematik nicht definiert ist.
Mit und ohne Pfad
Im obigen Beispiel ist der erforderliche Parameter nur die Zeichenfolge des Modulnamens ohne Pfad und die Referenz ist a Das Mathematikmodul im Verzeichnis node_modules im aktuellen Verzeichnis, in dem sich .js befindet. Wenn im aktuellen Verzeichnis kein Verzeichnis „node_modules“ vorhanden ist oder das Mathematikmodul nicht im Verzeichnis „node_modules“ installiert ist, wird ein Fehler gemeldet.
Wenn sich das zu importierende Modul in einem anderen Pfad befindet, müssen Sie einen relativen oder einen absoluten Pfad verwenden, zum Beispiel:
var add=require('./add.js')
Im obigen Beispiel die Datei add.js in Das aktuelle Verzeichnis wird eingeführt und mit einem Wert versehen. Variable hinzufügen.
2. Moduldefinition
Modulobjekt: In jedem Modul repräsentiert das Modulobjekt das Modul selbst.
Exportattribut: ein Attribut des Modulobjekts, das eine Schnittstelle zur Außenwelt bereitstellt.
Wir verwenden immer noch das vorherige Beispiel und gehen davon aus, dass der Code in add.js wie folgt lautet:
function add(num1,num2){ alert(num1+num2); }
Obwohl die Datei a.js die Datei add.js einführt, kann erstere die Datei add immer noch nicht verwenden In der letzteren Funktion meldet Code wie add(3,5) in einer.js-Datei einen Fehler, der darauf hinweist, dass add keine Funktion ist.
Damit die Funktionen in add.js von anderen Modulen verwendet werden können, müssen diese eine externe Schnittstelle verfügbar machen. Das Exportattribut wird verwendet, um diese Arbeit abzuschließen. Ändern Sie den Code in add.js wie folgt:
exports.add=function (num1,num2){ alert(num1+num2); }
Die a.js-Datei kann die Methoden in add.js normal aufrufen. Beispielsweise können Aufrufe wie add.add(3,5) normal ausgeführt werden Das vorherige Add bedeutet das Modul, das durch die Add-Variable in dieser Datei dargestellt wird, und das letztere Add ist die Add-Methode, die das Modul einführt.
3. Modulidentifikation
Die Modulidentifikation bezieht sich auf die an die Anforderungsmethode übergebenen Parameter, bei denen es sich um eine Zeichenfolge handeln muss, die in Kamel-Schreibweise oder mit ., . benannt wird. , ein relativer Pfad am Anfang oder ein absoluter Pfad.
3. Vorteile der CommonJS-Modulspezifikation
Die CommonJS-Modulspezifikation löst das Problem der variablen Verschmutzung sehr gut und stört sich nicht gegenseitig Andere Lösungen werden damit verwendet. Es verblasst im Vergleich.
Das CommonJS-Spezifikationsdefinitionsmodul ist sehr einfach und die Schnittstelle ist sehr prägnant.
Die CommonJS-Modulspezifikation unterstützt Import- und Exportfunktionen, die verschiedene Module reibungslos verbinden und gegenseitige Abhängigkeiten realisieren können.
Das obige ist der detaillierte Inhalt vonWas ist die CommonJS-Spezifikation? Verstehen Sie die CommonJS-Spezifikation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!