Heim >Web-Frontend >js-Tutorial >Einführung in die Moduldefinition in NodeJS
In diesem Artikel wird hauptsächlich die Moduldefinitionsmethode in NodeJS vorgestellt und die Prinzipien von NodeJS-Modulen, allgemeinen Modulen und entsprechenden Definitionsmethoden in Form von Beispielen analysiert
Die Beispiele in In diesem Artikel wird die Definitionsmethode für das mittlere Modul von nodejs beschrieben. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
1. Moduldefinition
Das sogenannte Modul von nodejs ist eine Datei! Eine .js-Datei ist ein NodeJS-Modul. Zwischen Modulen und Dateien besteht eine Eins-zu-eins-Entsprechung, daher ist das referenzierte Modul „require('file path‘)“.
Zum Beispiel:
var circle = require('./circle.js'); console.log( 'The area of a circle of radius 4 is ' + circle.area(4));
Dies heißt foo.js
var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };
Dies heißt „circle.js“
Die beiden js-Codedateien werden im selben Ordner abgelegt.
Wenn Sie auf Module in anderen Ordnern verweisen möchten, schreiben Sie den Pfad direkt. Das Pfadformat hier ist das gleiche wie bei Linux: /../../.js Dies ist der absolute Pfad, ../.js ist die obere Ebene und ./.js ist der aktuelle Pfad.
Sie müssen hier auf den Unterschied zwischen exports und module.exports achten: exports ist eigentlich nur eine Referenz auf module.exports (genau wie a=2, b=a, b sich nur auf a bezieht, wenn b=c, b zeigt nicht mehr auf a), damit Sie die Bedeutung der offiziellen Website verstehen können (wenn Sie das Stammverzeichnis von Exporten als Funktion deklarieren oder ein Objekt generieren möchten, verwenden Sie bitte das Modul. Exporte statt Exporte)
2. Zirkelverweis
a.js:
console.log('a starting'); exports.done = false; var b = require('./b.js'); console.log('in a, b.done = %j', b.done); exports.done = true; console.log('a done');
b.js:
console.log('b starting'); exports.done = false; var a = require('./a.js'); console.log('in b, a.done = %j', a.done); exports.done = true; console.log('b done');
main.js:
console.log('main starting'); var a = require('./a.js'); var b = require('./b.js'); console.log('in main, a.done=%j, b.done=%j', a.done, b.done);
Sehen Sie, das ist ein .js unterscheidet sich von b.js. Die beiden verweisen aufeinander. Wird dies eine Endlosschleife verursachen? Nein, es liegt lediglich daran, dass ein Modul nicht geladen wurde, d. h. ein Teil eines Moduls ist nicht verfügbar. Wie hier wird a.js zuerst geladen, aber während a.js geladen wird, lädt a.js b.js. Zu diesem Zeitpunkt befindet sich a.js in einem stagnierenden Zustand, und nur die Daten vor require werden geladen b.js Es wird immer geladen. Folgendes ist das Ergebnis der Operation:
$ node main.js main starting a starting b starting in b, a.done = false b done in a, b.done = true a done in main, a.done=true, b.done=true
3. Kernmodul
Das sogenannte Kernmodul wird tatsächlich von nodejs entwickelt. Öffentliche Pakete, genau wie die öffentlichen Pakete von Java. Um auf das Kernmodul zuzugreifen, benötigen Sie einfach ('Dateiname'), damit Sie darauf zugreifen können. Tatsächlich wird das öffentliche Modulpaket unter node_modulesnpmlib platziert, das von nodejs installiert wird.
4. Dateimodul
Wenn es keine genaue Übereinstimmung für die sogenannte Referenz gibt, verwendet nodejs zuerst die Erweiterung: .js, .json und dann .node. Die js-Datei ist eine JavaScript-Datei, .json wird im JSON-Format geparst und .node wird als zusätzliches Modul mit dlopen geladen nein „/“ oder „./“ Beim Ändern von Symbolen wird das Modul in node_modules geladen. Informationen zum Speicherort dieser Datei finden Sie unten.
Ordner 5.node_modulesWenn beim Verweisen auf das Modul keine Formatsymbolqualifikation wie „/“ „../“ „./“ vorhanden ist, dann ist es verwendet Die Suchmethode lautet wie folgt: Angenommen, Ihre Datei befindet sich in „/home/ry/projects/foo.js“ und verweist auf
. Dann lautet die Suchmethode von bar.js wie folgt:require('bar.js')
/home/ry/node_modules/bar.js/home/node_modules/bar.js
/node_modules/bar.js
Das heißt, beginnend mit dem aktuellen Straßenbett, fügen Sie Schritt für Schritt den Ordner node_modules als Moduladresse zum übergeordneten Verzeichnis hinzu.
. require('example-module/path/to/file')
require('bar.js')
ist grob in zwei Typen unterteilt: 1) Schreiben Sie die Datei package.json, die im Stammverzeichnis geschrieben wird Die Form des Projekts ist wie folgt:
{ "name" : "some-library", "main" : "./lib/some-library.js" }
Das so geschriebene require('./some-library') ist wirklich
require('./some-library/lib/some-library.js')
2) Stimmen Sie dem Laden der Datei index.js oder index.node direkt zu. Das Laden kann wie folgt erfolgen:
./some-library/ index.js./some-library/index.node
Mehrere Verweise auf Ein Modul wird nur einmal geladen. Genau wie die statische Schlüsselwortänderung in Java. Beachten Sie jedoch, dass bei der Verwendung von
in dieser Form nicht unbedingt gewährleistet ist, dass jedes Mal auf dieselbe Datei verwiesen wird (da Sie möglicherweise in verschiedenen Ordnern darauf verweisen).require('foo')
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Erfahren Sie mehr über das Clustermodul in NodeEinführung in die Verwendung von Angular mit Node.jsDas obige ist der detaillierte Inhalt vonEinführung in die Moduldefinition in NodeJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!