Latest web development tutorials

Node.js system modułowy

Aby plik node.js mogą dzwonić do siebie, node.js zapewnia prosty system modułowy.

Moduł jest istotną częścią node.js aplikacji, plików i modułów jest jeden do jednego. Innymi słowy, node.js plik jest modułem, plik ten może być kod JavaScript, JSON lub kompilowane C / C ++ rozszerzeń.

Utwórz moduł

W node.js, stworzenie modułu jest bardzo prosta, ponieważ tworzymy plik 'main.js', w następujący sposób:

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

Powyższy przykład, kod require ( './ cześć ") przedstawił aktualny katalog plików hello.js (./ katalog bieżący, node.js domyślny przyrostek js).

Node.js zapewnia eksportu i wymagają dwa obiekty, w których eksport jest otwarte interfejsy moduł wymaga modułu do pozyskania z interfejsu zewnętrznego, czyli modułu eksportu nabycia celem.

Dalej dochodzimy do tworzenia hello.js plik, co następuje:

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

W powyższym przykładzie, hello.js eksportu przez świat jako moduł interfejsu dostępu do obiektów, ten moduł w main.js ładowany poprzez require ( './ cześć "), a następnie można bezpośrednio uzyskać dostęp do obiektu za członków hello.js w eksporcie funkcja.

Czasem po prostu chcemy zapakować moduł obiektu, format jest następujący:

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

Na przykład:

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

Więc masz bezpośredni przedmiot:

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

Jedyną zmianą jest zastosowanie interfejsu modułu module.exports = Witam zastąpiony exports.world = function () {}. Po przedstawieniu modułu zewnętrznego, Hello obiekt, którego interfejs obiektu ma być sama moc, zamiast oryginalnych eksportu.


Gdzie umieścić moduł serwera

Być może zauważyłeś, że użyliśmy w kodzie modułu. Tak:

var http = require("http");

...

http.createServer(...);

Node.js jest wyposażony w funkcję o nazwie modułu "http", pytamy go, aby powrócić do wartości zmiennej lokalnej w naszym kodzie.

To prowadzi nas do zmiennej lokalnej ma wszystkie metody publiczne moduł http stanowi przedmiot.

Metody node.js wymaga strategia wyszukiwania plików jest następująca:

Ponieważ istnieją cztery klasy moduł (moduł podstawowy i trzy plik modułów) node.js, choć wymaga metoda jest bardzo prosta, ale wewnątrz jest bardzo skomplikowane ładowanie, ładowanie ich priorytety są różne. Jak przedstawiono poniżej:

nodejs-wymagają

Załadowane z modułu pamięci podręcznej plików

Pomimo modułu różne priorytety rodzimych modułu i plików, ale nie będzie mieć pierwszeństwo nad istniejącego pliku modułu obciążenia z modułu pamięci podręcznej.

Ładowanie z modułu natywnej

Natywna priorytetem moduł po module pamięci podręcznej plików priorytetem. wymagają metod Po zakończeniu analizowania nazwę pliku, sprawdzić, czy moduł priorytetem w natywnej listy modułów. W module http, na przykład, choć nie jest to plik http / http.js / http.node / http.json w katalogu, require ( "http") nie będą wczytywane z pliku, ale ładowane od modułu natywnym.

Moduł Native posiada również strefę buforową, jest również korzystnie ładowane z pamięci podręcznej. Jeśli bufor nie jest załadowany, to wtedy nazwać natywny moduł ładowania zostanie załadowany i wykonywany.

Wczytaj z pliku

Jeżeli plik nie istnieje w module pamięci podręcznej, a nie rodem Moduł kiedy node.js wymagać będzie metoda analityczna parametry przychodzące i załadować plik rzeczywisty z systemu plików, proces ładowania kompilowania i dane pakowania w poprzednim rozdziale został on wprowadzony, w którym opiszemy szczegółowo proces, aby znaleźć moduł plików, który ma także pewne szczegóły Ważne.

Metoda wymaga przeniesienia przyjmuje następujące parametry:

  • http, fs, ścieżki itd Moduł rodzimych.
  • ./mod lub ../mod, względna ścieżka pliku modułu.
  • / Pathtomodule / mod, bezwzględna ścieżka modułu plików.
  • mod, nienatywną Moduł pliku modułu.