Latest web development tutorials

sistema modulare Node.js

Per rendere il file Node.js può chiamare l'un l'altro, Node.js offre un sistema modulare semplice.

Modulo è una parte essenziale di Node.js applicazioni, file e moduli è uno a uno. In altre parole, un file Node.js è un modulo, questo file può essere codice JavaScript, JSON o estensioni compilati C / C ++.

Creare un modulo

In Node.js, creare un modulo è molto semplice, come creiamo un file 'main.js', come segue:

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

L'esempio di cui sopra, il codice richiede ( './ ciao') ha introdotto la directory dei file hello.js corrente (./ directory corrente, Node.js js suffisso predefinito).

Node.js fornisce le esportazioni e richiedono due oggetti, dove le esportazioni sono interfacce modulo aperto richiedono un modulo per l'acquisizione dall'interfaccia esterna, vale a dire il modulo esportazioni acquisizione del bersaglio.

Poi si arriva a creare il file hello.js, come segue:

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

Nell'esempio precedente, hello.js esportazioni per il mondo come un modulo di interfaccia accesso agli oggetti, questo modulo main.js caricato via require ( './ ciao'), allora si può accedere direttamente dell'oggetto utenti hello.js delle esportazioni la funzione.

A volte vogliamo solo di confezionare un modulo di oggetto, il formato è il seguente:

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

Ad esempio:

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

Così si ottiene un oggetto diretto:

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

L'unico cambiamento è l'utilizzo di un'interfaccia module.exports modulo = Ciao sostituito exports.world = function () {}. Quando si fa riferimento al modulo esterno, Ciao oggetto che ha per oggetto l'interfaccia deve essere emesso in sé, piuttosto che le esportazioni originali.


Dove mettere il modulo server

Forse avete notato che abbiamo usato nel codice del modulo. Come questo:

var http = require("http");

...

http.createServer(...);

Node.js è dotato di una funzione chiamata modulo "http", lo chiediamo a restituire valore a una variabile locale nel nostro codice.

Questo ci porta in una variabile locale ha tutti i metodi pubblici il modulo HTTP fornisce un oggetto.

metodi Node.js richiedono la strategia di ricerca di file è il seguente:

Poiché ci sono quattro modulo di classe (modulo primario e tre file di moduli) Node.js, anche se richiede metodo è estremamente semplice, ma dentro è molto complessa di carico, caricare le loro priorità sono diverse. Come mostrato di seguito:

nodejs-richiedono

Caricato dal modulo cache dei file

Nonostante il modulo priorità diverse modulo nativo e file, ma non ci vorrà la precedenza sul file di modulo di carico esistente dal modulo cache.

Caricamento dal modulo nativo

priorità modulo nativo dopo il modulo della cache file di priorità. richiedono metodi dopo l'analisi del nome del file, controllo di priorità se il modulo in un elenco modulo nativo. Nel modulo HTTP, per esempio, anche se c'è un file http / http.js / http.node / http.json nella directory, richiedono ( "http") non verrà caricato dal file, ma caricata dal modulo nativo.

modulo nativo ha anche una zona cuscinetto, è anche preferenzialmente caricato dalla cache. Se il buffer non viene caricato prima, quindi chiamare il caricamento del modulo nativo verrà caricato ed eseguito.

Carica da file

Quando il file non esiste nel modulo della cache, e non un modulo nativo quando, Node.js richiederà metodo analitico dei parametri in ingresso, e caricare il file effettivo dal file system, il processo di caricamento di compilazione e dettagli di imballaggio nella sezione precedente E 'stato introdotto, in cui descriveremo in dettaglio il processo per trovare il modulo di file, che ha anche alcuni dettagli vale la pena conoscere.

richiede metodo di trasferimento accetta i seguenti parametri:

  • http, fs, percorso, ecc, modulo nativo.
  • ./mod o ../mod, relativo modulo di file di percorso.
  • / Pathtomodule / mod, il percorso assoluto del modulo file.
  • mod, modulo di file di modulo non nativo.