Tutorial su Node.js NPM: come creare, estendere e pubblicare moduli
Moduli Node.js
Un modulo in Node.js è un incapsulamento logico del codice in una singola unità. È sempre una buona pratica di programmazione separare sempre il codice in modo tale da renderlo più gestibile e manutenibile per scopi futuri. È qui che entrano in azione i moduli in Node.js.
Poiché ogni modulo è un'entità indipendente con la propria funzionalità incapsulata, può essere gestito come un'unità di lavoro separata.
Cos'è un modulo in Node.js?
Come affermato in precedenza, i moduli in Node js sono un modo per incapsulare il codice in un'unità logica separata. Sul mercato sono disponibili molti moduli già pronti che possono essere utilizzati all'interno di Node js.
Di seguito sono riportati alcuni dei moduli più diffusi utilizzati in un'applicazione Node js
- Framework espresso – Express è un framework di applicazioni web Node js minimale e flessibile che fornisce un solido set di funzionalità per il web e mobile applicazioni.
- Presa.io – Socket.IO consente la comunicazione bidirezionale basata su eventi in tempo reale. Questo modulo è utile per la creazione di applicazioni basate su chat.
- Giada – Jade è un motore di modelli ad alte prestazioni e implementato con JavaCopione per nodo e browser.
- MongoDB - L' MongoDB Il driver Node.js è il driver node.js ufficialmente supportato per MongoDB.
- restificare – Restify è un framework leggero, simile a Express per la creazione di API REST
- Bluebird – Bluebird è una libreria di promesse completa con un focus su funzionalità e prestazioni innovative
Utilizzo dei moduli in Node.js
Per utilizzare i moduli in a Node.js applicazione, devono prima essere installati utilizzando il gestore pacchetti Node.
La riga di comando seguente mostra come è possibile installare un modulo “express”.
npm installa espresso
- Il comando precedente scaricherà i file necessari che contengono i "moduli espressi" e si occuperà anche dell'installazione
- Una volta installato il modulo, per poter utilizzare un modulo in un'applicazione Node.js, è necessario utilizzare la parola chiave "require". Questa parola chiave è un modo utilizzato da Node.js per incorporare la funzionalità di un modulo in un'applicazione.
Diamo un'occhiata ad un esempio di come possiamo utilizzare la parola chiave "require". L'esempio di codice "Guru99" riportato di seguito mostra come utilizzare la funzione require
var express=require('express'); var app=express(); app.set('view engine','jade'); app.get('/',function(req,res) { }); var server=app.listen(3000,function() { });
- Nella prima istruzione stessa, utilizziamo la parola chiave "require" per includere il modulo express. Il modulo “express” è ottimizzato JavaCopione libreria per lo sviluppo di Node.js. Questo è uno dei moduli Node.js più comunemente usati.
- Dopo aver incluso il modulo, per utilizzare la funzionalità all'interno del modulo, è necessario creare un oggetto. Qui viene creato un oggetto del modulo express.
- Una volta incluso il modulo utilizzando il comando "require" e creato un "oggetto", è possibile richiamare i metodi richiesti del modulo express. Qui stiamo utilizzando il comando set per impostare il motore di visualizzazione, che viene utilizzato per impostare il motore di modelli utilizzato in Node.js.
- Qui stiamo utilizzando il metodo di ascolto per fare in modo che l'applicazione ascolti su un particolare numero di porta.
Nota: -(Solo per la comprensione del lettore; un motore di template è un approccio per inserire valori in un'applicazione raccogliendo dati da file di dati. Questo concetto è piuttosto famoso in Angular JS in cui le parentesi graffe {{ key }} vengono utilizzate per sostituire i valori in la pagina Web. La parola "chiave" tra parentesi graffe denota sostanzialmente la variabile che verrà sostituita da un valore quando la pagina viene visualizzata.)
Come creare moduli NPM
Node.js ha la capacità di creare moduli personalizzati e ti consente di includere tali moduli personalizzati nella tua applicazione Node.js.
Diamo un'occhiata a un semplice esempio di come possiamo creare il nostro modulo e includerlo nel nostro file dell'applicazione principale. Il nostro modulo eseguirà semplicemente il semplice compito di aggiungere due numeri.
Seguiamo i passaggi seguenti per vedere come possiamo creare moduli e includerli nella nostra applicazione.
Di seguito è riportato il processo passo dopo passo su come creare moduli NPM
Passo 1) Crea un file e incolla sotto il codice
Crea un file chiamato "Addition.js" e includi il codice seguente. Questo file conterrà la logica per il tuo modulo.
Di seguito è riportato il codice da inserire in questo file;
var exports=module.exports={}; exports.AddNumber=function(a,b) { return a+b; };
- La parola chiave "exports" viene utilizzata per garantire che altri file possano effettivamente accedere alla funzionalità definita in questo file.
- Stiamo quindi definendo una funzione chiamata "AddNumber". Questa funzione è definita per accettare 2 parametri, a e b. La funzione viene aggiunta al modulo "esporta" per rendere la funzione pubblica a cui possono accedere altri moduli dell'applicazione.
- Stiamo finalmente facendo in modo che la nostra funzione restituisca il valore aggiunto dei parametri.
Ora che abbiamo creato il nostro modulo personalizzato che ha la funzionalità di aggiungere 2 numeri. È giunto il momento di creare un'applicazione che chiamerà questo modulo.
Nel passaggio successivo vedremo infatti come creare l'applicazione che chiamerà il nostro modulo personalizzato.
Passo 2) Creare un file dell'applicazione
Crea un file chiamato "app.js", che è il file dell'applicazione principale e aggiungi il codice seguente
var Addition=require('./Addition.js'); console.log(Addition.AddNumber(1,2));
- Stiamo utilizzando la parola chiave "require" per includere la funzionalità nel file Addition.js.
- Poiché le funzioni nel file Addition.js sono ora accessibili, ora possiamo effettuare una chiamata alla funzione AddNumber. Nella funzione passiamo 2 numeri come parametri. Stiamo quindi visualizzando il valore nella console.
Uscita:
- Quando esegui il file app.js, otterrai un output di valore 3 nel log della console.
- Il risultato è dovuto al fatto che la funzione AddNumber nel file Addition.js è stata chiamata correttamente e il valore restituito pari a 3 è stato visualizzato nella console.
Nota: – Non stiamo ancora utilizzando il “Gestore pacchetti Node” per installare il nostro modulo Addition.js. Questo perché il modulo fa già parte del nostro progetto sulla macchina locale. Il gestore pacchetti Node entra in scena quando pubblichi un modulo su Internet, che vediamo nell'argomento successivo.
Estensione dei moduli in Node.js
Quando si creano moduli, è anche possibile estendere o ereditare un modulo da un altro.
Nella programmazione moderna, è abbastanza comune creare una libreria di moduli comuni e quindi estendere la funzionalità di questi moduli comuni, se necessario.
Diamo un'occhiata ad un esempio di come possiamo estendere i moduli in Node.js.
Passo 1) Crea il modulo base.
Nel nostro esempio, crea un file chiamato "Tutorial.js" e inserisci il codice seguente.
In questo codice stiamo semplicemente creando una funzione che restituisce una stringa alla console. La stringa restituita è "Guru99 Tutorial".
var exports=module.exports={}; exports.tutorial=function() { console.log("Guru99 Tutorial") }
- Il modulo Exports viene utilizzato in modo che qualsiasi funzione definita in questo file possa essere disponibile in altri moduli in Node.js
- Stiamo creando una funzione chiamata tutorial che può essere utilizzata in altri moduli Node.js.
- Stiamo visualizzando una stringa "Guru99 Tutorial" nella console quando viene chiamata questa funzione.
Ora che abbiamo creato il nostro modulo base chiamato Tutorial.js. È giunto il momento di creare un altro modulo che estenderà questo modulo base.
Esploreremo come farlo nel passaggio successivo.
Passo 2) Successivamente, creeremo il nostro modulo esteso. Crea un nuovo file chiamato "NodeTutorial.js" e inserisci il codice seguente nel file.
var Tutor=require('./Tutorial.js'); exports.NodeTutorial=function() { console.log("Node Tutorial") function pTutor() { var PTutor=Tutor PTutor.tutorial(); } } Or var Tutor=require('./Tutorial.js'); exports.NodeTutorial=function() { console.log("Node Tutorial") this.pTutor = function () { var PTutor=Tutor PTutor.tutorial(); } }
Nota i seguenti punti chiave sul codice sopra
- Stiamo utilizzando la funzione "require" nel nuovo file del modulo stesso. Poiché estenderemo il file del modulo esistente “Tutorial.js”, dobbiamo prima includerlo prima di estenderlo.
- Creiamo quindi una funzione chiamata "Nodetutorial". Questa funzione farà 2 cose,
- Invierà una stringa "Node Tutorial" alla console.
- Invierà la stringa "Guru99 Tutorial" dal modulo base "Tutorial.js" al nostro modulo esteso "NodeTutorial.js".
- Qui stiamo effettuando il primo passo per inviare alla console una stringa relativa al “Nodo Tutorial”.
- Il passo successivo è chiamare la funzione dal nostro modulo Tutorial, che genererà la stringa "Guru99 Tutorial" nel file console.log.
Passo 3) Crea il tuo file app.js principale, ovvero il file dell'applicazione principale, e includi il codice seguente.
var localTutor=require('./NodeTutorial.js'); localTutor.NodeTutorial(); localTutor.NodeTutorial.pTutor(); Or use this code var tut = new localTutor.NodeTutorial(); // Create and save object tut.pTutor(); // Call function on object
Il codice sopra riportato esegue le seguenti operazioni:
- Il nostro file dell'applicazione principale ora chiama il modulo "NodeTutorial".
- Chiameremo la funzione “NodeTutorial”. Richiamando questa funzione, nel log della console verrà visualizzato il testo “Node Tutorial”.
- Dato che abbiamo esteso il nostro modulo Tutorial.js ed esposto una funzione chiamata pTutor. Richiama inoltre il modulo tutorial nel modulo Tutorial.js e sulla console verrà visualizzato anche il testo "Guru99 Tutorial".
Produzione:
Poiché abbiamo eseguito il codice app.js soprastante utilizzando Node, otterremo il seguente output nel file console.log
- Esercitazione sui nodi
- Tutorial Guru99
Pacchetto di pubblicazione NPM (Node Package Manager).
È possibile pubblicare il proprio modulo da soli Github repository.
Pubblicando il tuo modulo in una posizione centrale, non sarai più gravato di doverlo installare su ogni macchina che lo richiede.
Puoi invece utilizzare il comando install di npm e installare il modulo npm pubblicato.
Per pubblicare il tuo modulo npm devi seguire i seguenti passaggi
Passo 1) Crea il tuo repository su GitHub (uno strumento di gestione del repository di codice online). Può essere utilizzato per ospitare i tuoi repository di codice.
Passo 2 ) Devi dire alla tua installazione npm locale chi sei. Ciò significa che dobbiamo dire a npm chi è l'autore di questo modulo, qual è l'ID e-mail e qualsiasi URL aziendale disponibile che deve essere associato a questo ID. Tutti questi dettagli saranno aggiunti al tuo modulo npm quando verrà pubblicato.
I comandi seguenti impostano il nome, l'email e l'URL dell'autore del modulo npm.
npm set init-author-name “Guru99.”
npm imposta init-author-email “guru99@gmail.com”
npm imposta init-author-url “http://Guru99.com”
Passo 3) Il passaggio successivo consiste nell'accedere a npm utilizzando le credenziali fornite nell'ultimo passaggio. Per accedere è necessario utilizzare il comando seguente
npm login
Passo 4) Inizializza il pacchetto: il passaggio successivo consiste nell'inizializzare il pacchetto per creare il file package.json. Questo può essere fatto emettendo il comando seguente
npm init
Quando esegui il comando precedente, ti verranno chieste alcune domande. Il più importante è il numero di versione del tuo modulo.
Passo 5) Pubblica su GitHub: il passaggio successivo è pubblicare i file sorgente su GitHub. Questo può essere fatto eseguendo i comandi seguenti.
git add. git commit -m "Initial release" git tag v0.0.1 git push origin master --tags
Passo 6) Pubblica il tuo modulo: la parte finale consiste nel pubblicare il tuo modulo nel registro npm. Questo viene fatto tramite il comando seguente.
npm publish
Gestire pacchetti di terze parti con npm
Come abbiamo visto, il “Gestore pacchetti Node” ha la capacità di gestire i moduli richiesti dalle applicazioni Node.js.
Diamo un'occhiata ad alcune delle funzioni disponibili nel gestore pacchetti del nodo per la gestione dei moduli
- Installazione di pacchetti in modalità globale: i moduli possono essere installati a livello globale, il che significa semplicemente che questi moduli sarebbero disponibili per tutti i progetti Node.js su un computer locale. L'esempio seguente mostra come installare il “modulo express” con l'opzione globale.npm installa express –global L'opzione globale nella dichiarazione precedente è ciò che consente l'installazione dei moduli a livello globale.
- Elenca tutti i pacchetti globali installati su un computer locale. Questo può essere fatto eseguendo il comando seguente nel prompt dei comandielenco npm –globaleDi seguito è riportato l'output che verrà mostrato se hai precedentemente installato il "modulo express" sul tuo sistema. Qui puoi vedere i diversi moduli installati sul computer locale.
- Installazione di una versione specifica di un pacchetto: a volte potrebbe essere necessario installare solo la versione specifica di un pacchetto. Una volta che conosci il nome del pacchetto e la versione pertinente che deve essere installata, puoi utilizzare il comando npm install per installare quella versione specifica. L'esempio seguente mostra come installare il modulo chiamato underscore con una versione specifica di 1.7.0npm install trattino basso@1.7.0
- Aggiornamento della versione di un pacchetto: a volte potresti avere una versione precedente di un pacchetto in un sistema e potresti voler aggiornare a quella più recente disponibile sul mercato. Per fare ciò è possibile utilizzare il comando npm update. L'esempio seguente mostra come aggiornare il pacchetto underscore alla versione più recenteSottolineatura dell'aggiornamento npm
- Ricerca di un pacchetto specifico – Per cercare se una versione specifica è disponibile sul sistema locale o meno, puoi usare il comando search di npm. L'esempio seguente verificherà se il modulo express è installato sulla macchina locale o meno.npm ricerca espressa
- Disinstallazione di un pacchetto: nello stesso modo in cui puoi installare un pacchetto, puoi anche disinstallare un pacchetto. La disinstallazione di un pacchetto viene eseguita con il comando di disinstallazione di npm. L'esempio seguente mostra come disinstallare il modulo Expressnpm disinstallazione rapida
Qual è il file package.json
Il file "package.json" viene utilizzato per contenere il file metadati su un particolare progetto. Queste informazioni forniscono al gestore dei pacchetti Node le informazioni necessarie per comprendere come gestire il progetto insieme alle sue dipendenze.
I file package.json contengono informazioni come la descrizione del progetto, la versione del progetto in una particolare distribuzione, informazioni sulla licenza e dati di configurazione.
Il file package.json si trova normalmente nella directory root di un progetto Node.js.
Facciamo un esempio di come appare la struttura di un modulo quando viene installato tramite npm.
L'istantanea seguente mostra il contenuto del file del modulo Express quando è incluso nel progetto Node.js. Dallo snapshot, puoi vedere il file package.json nella cartella Express.
Se apri il file package.json, vedrai molte informazioni nel file.
Di seguito è riportata un'istantanea di una parte del file. IL espresso@~4.13.1 menziona il numero di versione del modulo Express utilizzato.
Sommario
- Un modulo in Node.js è un incapsulamento logico del codice in una singola unità. La separazione in moduli rende il codice più gestibile e manutenibile per scopi futuri
- Sul mercato sono disponibili molti moduli che possono essere utilizzati all'interno di Node.js come express, underscore, MongoDB, ecc.
- Il gestore pacchetti del nodo (npm) viene utilizzato per scaricare e installare moduli che possono quindi essere utilizzati in un'applicazione Node.js.
- È possibile creare moduli NPM personalizzati, estendere questi moduli e anche pubblicare questi moduli.
- Il gestore pacchetti Node dispone di un set completo di comandi per gestire i moduli npm sul sistema locale, come l'installazione, la disinstallazione, la ricerca, ecc.
- Il file package.json viene utilizzato per contenere tutte le informazioni sui metadati per un modulo npm.