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.