Node.js
Transcript
Node.js
Node.js NPM e moduli by Stefano Burigat Cos'è NPM? NPM (Node Package Manager) è uno strumento che consente di installare e gestire i moduli esterni che forniscono funzionalità aggiuntive al sistema node di base. Per installare un modulo di nome "commander", è sufficiente digitare npm install commander da un prompt dei comandi (NON dall'interno di REPL). node_modules I moduli vengono normalmente installati nella directory node_modules all'interno della directory corrente. Per determinare la cartella di installazione, si può usare npm root mentre per verificare quali moduli sono installati si può utilizzare npm ls. Durante l'installazione di un modulo, npm installa anche eventuali altri moduli da cui il modulo installato dipende, utilizzando una struttura gerarchica descritta in un file package.json. Esercizio Installate il modulo "colors" tramite npm install colors. Provate ad utilizzare npm ls per verificare l'installazione. Scrivete un file con il codice seguente e poi eseguitelo tramite node. var colors = require("colors"); console.log("Hello Node!".rainbow); Esplorate le funzioni messe a disposizione dal modulo colors tramite REPL. require() La funzione require() serve per ottenere l'accesso alle funzionalità dei moduli (anche di quelli nativi inclusi direttamente in node). E' possibile passare a require un path specifico oppure semplicemente il nome di un modulo e lasciare a node il compito di trovare il modulo. In node, moduli e file hanno una corrispondenza uno a uno. Questo significa che un file è un modulo che può essere importato tramite utilizzo di require. Esercizio Scrivete un file testmod.js con il seguente codice: function testfunz() { console.log("Dentro la funzione testfunz()"); } console.log("Dentro il modulo testmod"); Importate questo modulo all'interno di un file main.js con il codice seguente: var testmod = require("./testmod"); console.log(testmod); Eseguite main.js. Module Node fornisce una variabile chiamata module che rappresenta il modulo corrente. module è un oggetto che contiene una proprietà chiamata exports che rappresenta l'interfaccia pubblica del modulo ed è inizialmente vuota. Il valore di exports viene tornato dalla funzione require da cui le parentesi graffe dell'output precedente (dovute al fatto che exports è vuota). Per poter fare in modo di accedere alle proprietà di un modulo da un altro modulo è necessario aggiungere le proprietà che si vogliono esportare all'oggetto module.exports. Esercizio Modificate il file testmod.js con il seguente codice: module.exports.testfunz = function testfunz() { console.log("Dentro la funzione testfunz()"); } console.log("Dentro il modulo testmod"); Modificate main.js per poter accedere alla funzione testfunz: var testmod = require("./testmod"); console.log(testmod); testmod.testfunz(); Eseguite main.js.