Qui, imparerai come esporre diversi tipi come modulo usando il modulo.esportazione.
Il module.exports
è un oggetto speciale che è incluso in ogni file JavaScript nel Nodo.applicazione js per impostazione predefinita. module
è una variabile che rappresenta il modulo corrente e exports
è un oggetto che verrà esposto come modulo. Quindi, qualunque cosa tu assegni a module.exports
sarà esposto come un modulo.,
Vediamo come esporre diversi tipi come modulo usandomodule.exports
.
Esporta letterali
Come menzionato sopra,exports
è un oggetto. Quindi espone tutto ciò che gli hai assegnato come modulo. Ad esempio, se si assegna una stringa letterale, allora esporrà quella stringa letterale come modulo.
Il seguente esempio espone il messaggio stringa semplice come modulo nel messaggio.js.
Copia
module.exports = 'Hello world';
Ora, importa questo modulo di messaggio e usalo come mostrato di seguito.
Copia
var msg = require('./Messages.js');console.log(msg);
Esegui l’esempio precedente e vedi il risultato, come mostrato di seguito.
C:\> nodo app.js
Hello World
./
come percorso della cartella principale per importare un modulo locale. Tuttavia, non è necessario specificare il percorso da importare Nodo.,moduli core js o moduli NPM nella funzionerequire()
.Esporta Oggetto
Ilexports
è un oggetto. Quindi, puoi allegare proprietà o metodi ad esso. L’esempio seguente espone un oggetto con una proprietà string nel fileMessage.js
.
Copy
exports.SimpleMessage = 'Hello world';//ormodule.exports.SimpleMessage = 'Hello world';
Nell’esempio precedente, abbiamo allegato una proprietà SimpleMessage
all’oggetto exports. Ora, importa e usa questo modulo, come mostrato di seguito.
Copia
var msg = require('./Messages.js');console.log(msg.SimpleMessage);
Nell’esempio precedente, il require()
funzione restituirà un oggetto { SimpleMessage : 'Hello World'}
e assegnarlo alla variabile msg. Quindi, ora puoi usare msg.SimpleMessage
.
Esegui l’esempio precedente scrivendonode app.js
nel prompt dei comandi e vedi l’output come mostrato di seguito.
C:\> nodo app.js
Ciao mondo
Allo stesso modo come sopra, puoi esporre un oggetto con funzione., L’esempio seguente espone un oggetto con la funzione log
come modulo.
Copia
module.exports.log = function (msg) { console.log(msg);};
Il modulo precedente esporrà un oggetto – { log : function(msg){ console.log(msg); } }
. Utilizzare il modulo di cui sopra come mostrato di seguito.
Copia
var msg = require('./Log.js');msg.log('Hello World');
Esegui e vedi l’output nel prompt dei comandi come mostrato di seguito.
C:\> nodo app.,js
Hello World
Puoi anche allegare un oggetto a module.exports
, come mostrato di seguito.
Copia
Copia
var person = require('./data.js');console.log(person.firstName + ' ' + person.lastName);
Esegui l’esempio precedente e vedi il risultato, come mostrato di seguito.
C:\> nodo app.js
James Bond
Funzione di esportazione
È possibile allegare una funzione anonima per le esportazioni oggetto come mostrato di seguito.,
Copia
module.exports = function (msg) { console.log(msg);};
Ora, è possibile utilizzare il modulo di cui sopra, come mostrato di seguito.
Copia
var msg = require('./Log.js');msg('Hello World');
La variabile msg
diventa un’espressione di funzione nell’esempio precedente. Quindi, puoi richiamare la funzione usando la parentesi ()
. Esegui l’esempio sopra e vedi l’output come mostrato di seguito.
C:\> nodo app.,js
Hello World
Esporta la funzione come Classe
In JavaScript, una funzione può essere trattata come una classe. L’esempio seguente espone una funzione che può essere utilizzata come una classe.
Il modulo di cui sopra può essere utilizzato, come mostrato di seguito.
Copia
Come puoi vedere, abbiamo creato un oggetto person
usando la parola chiave new
. Esegui l’esempio sopra, come mostrato di seguito.
C:\> nodo app.,js
James Bond
In questo modo, è possibile esportare e importare un modulo locale creato in un file separato nella cartella principale.
Nodo.js consente inoltre di creare moduli in sottocartelle. Vediamo come caricare il modulo dalle sottocartelle.
Carica il modulo dalla cartella separata
Usa il percorso completo di un file modulo in cui lo hai esportato usandomodule.exports
. Ad esempio, se il modulo di registro nel registro.js è memorizzato nella cartellautility
nella cartella principale dell’applicazione, quindi importarlo, come mostrato di seguito.
Copy
var log = require('./utility/log.js');
Nell’esempio precedente, .
è per la cartella principale, quindi specificare il percorso esatto del file del modulo. Nodo.js ci permette anche di specificare il percorso della cartella senza specificare il nome del file. Ad esempio, è possibile specificare solo la cartella utility senza specificare log.js
, come mostrato di seguito.
Copia
var log = require('./utility');
Nell’esempio precedente, Node.,js cercherà un file di definizione del pacchetto chiamato package.json
all’interno della cartella utility. Questo perché Node presuppone che questa cartella sia un pacchetto e proverà a cercare una definizione di pacchetto.Il filepackage.json
deve trovarsi in una directory del modulo. Il package.json
nella cartella utility specifica il nome del file utilizzando ilmain
chiave, come mostrato di seguito.
Copia
{ "name" : "log", "main" : "./log.js"}
Ora, Nodo.,js troverà il filelog.js
usando la vocemain
inpackage.json
e lo importerà.
package.json
non esiste, allora cercherà index.file js come file modulo per impostazione predefinita.