Latest web development tutorials

Node.js Modulsystem

Um Node.js-Datei vornehmen können sich gegenseitig anrufen, bietet Node.js ein einfaches Baukastensystem.

Modul ist ein wesentlicher Bestandteil der Node.js Anwendungen, Dateien und Module ist 00.59. Mit anderen Worten, eine Node.js-Datei ist ein Modul, kann diese Datei JavaScript-Code, JSON oder kompilierte C / C ++ Erweiterungen.

Erstellen Sie ein Modul

In Node.js, schaffen ein Modul ist sehr einfach, da wir eine 'main.js' Datei zu erstellen, wie folgt:

var hello = require('./hello');
hello.world();

Das obige Beispiel erfordert der Code ( './ Hallo') eingeführt, um die aktuelle hello.js Dateiverzeichnis (./ aktuelle Verzeichnis, node.js Standard Suffix js).

Node.js bietet Exporte und benötigen zwei Objekte, wo die Exporte sind offene Schnittstellen-Modul ein Modul benötigen für von der externen Schnittstelle zu erwerben, nämlich die Exporte Zielerfassungsmodul.

Als nächstes kommen wir hello.js-Datei zu erstellen, wie folgt:

exports.world = function() {
  console.log('Hello World');
}

In dem obigen Beispiel hello.js Exporte durch die Welt als Objekt Access-Interface-Modul, dieses Modul in main.js über erfordern geladen ( './ Hallo "), dann können Sie direkt die Mitglieder hello.js der Exporte des Objekts zugreifen die Funktion.

Manchmal haben wir nur ein Objektmodul zu verpacken wollen, ist das Format wie folgt:

module.exports = function() {
  // ...
}

Zum Beispiel:

//hello.js 
function Hello() { 
	var name; 
	this.setName = function(thyName) { 
		name = thyName; 
	}; 
	this.sayHello = function() { 
		console.log('Hello ' + name); 
	}; 
}; 
module.exports = Hello;

So erhalten Sie ein direktes Objekt:

//main.js 
var Hello = require('./hello'); 
hello = new Hello(); 
hello.setName('BYVoid'); 
hello.sayHello(); 

Die einzige Änderung ist die Verwendung eines Schnittstellenmoduls module.exports = Hallo exports.world = Funktion ersetzt () {}. Wenn außerhalb des Moduls Referenzierung Hallo Objekt, dessen Interface-Objekt ist selbst ausgegeben werden, anstatt die ursprünglichen Exporte.


Wo das Servermodul zu setzen

Vielleicht haben Sie bemerkt, dass wir in der Modul-Code verwendet haben. Wie folgt aus:

var http = require("http");

...

http.createServer(...);

Node.js kommt mit einem Feature "http" Modul genannt, bitten wir sie Wert auf eine lokale Variable in unserem Code zurückzukehren.

Das bringt uns in eine lokale Variable hat alle öffentlichen Methoden der HTTP-Modul ein Objekt zur Verfügung stellt.

Node.js Methoden erfordern die Datei Suchstrategie ist wie folgt:

Da es vier Klassenmodul (primäre Modul und drei Module Datei) Node.js sind, obwohl Verfahren benötigen, ist extrem einfach, aber innen ist es sehr komplex Laden ist, laden ihre Prioritäten unterschiedlich sind. Wie unten gezeigt:

NodeJS-erfordern

Geladen aus der Datei-Cache-Modul

Trotz der unterschiedlichen Prioritäten nativen Modul und Dateimodul, aber es wird nicht Vorrang vor bestehenden Lademodul-Datei aus dem Cache-Modul nehmen.

Laden von nativen Modul

Mutter Modul Priorität nach dem Cache-Modul Priorität Datei. erfordern Methoden nach dem Dateinamen, Vorrangprüfung, ob das Modul in einer nativen Modulliste Parsing. In HTTP-Modul, zum Beispiel, obwohl es eine http / http.js / http.node / http.json Datei im Verzeichnis, require ( "http") nicht aus der Datei geladen werden, sondern aus dem nativen Modul geladen.

Nativer Modul hat auch eine Pufferzone wird auch aus dem Cache bevorzugt geladen. Wenn der Puffer nicht vor geladen wird, dann rufen Sie die native Laden von Modulen geladen und ausgeführt werden.

Aus Datei laden

Wenn die Datei nicht existiert, in dem Cache-Modul, und nicht eine native Modul wann es zu Node.js Analysemethode eingehenden Parameter erfordern, und die eigentliche Datei aus dem Dateisystem zu laden, um den Ladevorgang der Erstellung und Verpackung Details im vorherigen Abschnitt Es wurde eingeführt, wo wir im Detail den Prozess beschreiben, wird die Datei-Modul zu finden, die auch einige Details wissenswert ist.

erfordern Transferverfahren die folgenden Parameter akzeptiert:

  • http, fs, Pfad usw. nativen Modul.
  • ./mod oder ../mod, relative Pfaddateimodul.
  • / Pathtomodule / mod, der absolute Pfad der Datei-Modul.
  • mod, nicht-native Modul Datei-Modul.