
Node.js rappresenta già una pietra miliare nella storia dell’informatica. Propone un modo per poter realizzare applicazioni lato server in Javascript. A chi è legato al concetto classico di web la cosa suonerà un pò strana. Javascript infatti è sempre stato visto come il linguaggio che ha dato il soffio di vita alle pagine statiche HTML, immobili nella loro struttura. Tutto è rimasto così finchè Google non ha creato il motore V8 che processava Javascript con lo scopo di ottimizzare il funzionamento del browser Chrome. Il progetto è diventato così autonomo nel tempo che si è dimostrato in grado di funzionare indipendentemente, senza un browser collegato, permettendo la realizzazione di applicazioni stand alone.
Node.js si fonda su V8 e una volta installato permette di scrivere righe di codice Javascript ed attivarle da riga di comando. Questa piattaforma è diventata un modo molto comune e performante per creare applicazioni web o servizi on line che forniscano accesso a database, attivino funzionalità o svolgano elaborazioni offrendo il tutto tramite comode API per l’interazione con un client di qualunque genere.
Questo articolo si pone lo scopo di offrire una panoramica introduttiva a Node.js e di essere solo il primo di una serie che permetterà di creare un proprio set di API.
Installazione
Node.js è un progetto multipiattaforma quindi dalla pagina ufficiale del sito è possibile scaricare l’installer per Windows o Mac nonchè il codice sorgente. Sono anche disponibili pacchetti di eseguibili per altre piattaforme mentre tutte le principali distribuzioni Linux ne permettono l’installazione tramite repository ufficiale.
Nella maggior parte dei metodi, l’installazione non dovrebbe creare alcun problema e, una volta conclusa, Node.js sarà disponibile e attivabile tramite il comando node.
Per verificare la corretta configurazione dell’ambiente, si potrà creare un primo file che chiameremo primo.js ed inserirvi all’interno:
/* Iniziamo con Node.js. Facciamo un Hello World */ console.log("Ciao Mondo!")
A questo punto da riga di comando si potrà inviare:
node primo.js
In output, vedremo apparire la stringa “Ciao Mondo!” il che dimostrerà due cose: la nostra piattaforma è pronta al lavoro e siamo riusciti a mandare in esecuzione il nostro primo programma con Node.js.
Con un pò di esperienza in Javascript, si vede che le due righe scritte non sono altro che un commento ed un’invocazione alla console, come faremmo in Chrome.
Interagire in HTTP
Visto che, come abbiamo detto, ci interessa usare Node.js per l’interazione in Rete vediamo un altro classico esempio che ci proietta velocemente in un contesto “web”:
var http = require("http") ; function getResponse(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}) ; response.write("Rispondo alla richiesta"); response.end() ; } http.createServer(getResponse).listen(8100) ; console.log("Server in esecuzione... Inviare richieste") ;
Alla prima riga, importiamo il modulo http che consentirà il trattamento di questo protocollo di comunicazione. Node.js ha un’anima profondamente modulare quindi ci abitueremo presto a questo approccio, per così dire, di integrazione.
Il server vero e proprio viene avviato con il metodo createServer che riceverà come informazioni operative la porta TCP di esecuzione – 8100 in questo caso – e la funzione che rappresenterà le operazioni svolte ad ogni richiesta client, getResponse.
Il protocollo HTTP, nel suo funzionamento più intimo, è piuttosto semplice. Si basa su un modello richiesta/risposta, entrambe strutturate su attributi divisi in intestazioni (headers) e corpo. Il metodo getResponse prende in input due oggetti, rappresentanti rispettivamente, per l’appunto, la richiesta e la risposta: request e response.
Al moment,o non leggeremo ancora il contenuto della richiesta ma ci accontenteremo di produrre una risposta. In getResponse invocheremo il metodo writeHead per produrre intestazioni e il metodo write per fornire contenuti. Invocando infine il metodo end la risposta preparata viene fornita al client.
Una volta scritto, il programma che abbiamo registrato nel file primo_server.js potrà essere mandato in esecuzione:
node primo_server.js
potremo provarlo invocando dal browser l’indirizzo http://localhost:8100.
Nell’output vedremo produrre la stringa “Rispondo alla richiesta” inviata tramite i comandi write, segno comunque che il metodo getResponse è stato attivato.
NPM
Una funzionalità molto utile che ormai viene sempre distribuita con Node.js è npm, un package manager che permette di scaricare pacchetti da integrare nella piattaforma e poter, successivamente, sfruttare nell’applicazione dopo aver invocato la direttiva require.
Per installare un pacchetto via npm è sufficiente il seguente:
npm install <nome pacchetto>
dove dovremo specificare il nome del pacchetto cui siamo interessati.
In alternativa a install, a seconda dei casi, si possono utilizzare:
- uninstall per la rimozione del modulo;
- search per controllare che un modulo esista;
- update per provvedere all’aggiornamento del modulo.
Tutte queste operazioni verranno svolte da npm attingendo ai pacchetti collocati nei suoi repository remoti.
Conclusioni
Quello che si è visto in questo tutorial è solo un approccio rapido a Node.js. Il discorso ovviamente verrà ripreso e mirerà ad espandere sempre più le nostre funzionalità lato server implementate fino a creare un servizio completo basato su API.
No Responses to “Introduzione a Node.js”