Implementazione di un server web completo

La lezione conclusiva del ciclo di lezioni introduttive a Node.js mostra come implementare un server HTTP applicando quanto discusso nelle varie lezioni.

Modulo e risorse

Iniziamo aggiungendo il codice principale del modulo “module-02.js” . In particolare vogliamo aggiungere un nuovo metodo alla classe HttpDispatcher. Questo metodo può essere aggiunto in due modi: o modifichiamo la definizione della classe, aggiungendo un’istruzione del tipo:

oppure possiamo aggiungere il metodo tramite prototyping. Questa è probabilmente la soluzione migliore dal punto di vista della manutenzione del codice, perché rende semplice e leggibile lo sviluppo incrementale da una classe: invece di modificare la classe originale, aggiungiamo del codice “a sé stante”:

se abbiamo ben compreso il funzionamento della struttura dati discussa nell’ultima lezione, il funzionamento del metodo dovrebbe essere evidente: dopo aver eseguito il parsing dell’URL richiesto al server non facciamo altro che cercare il giusto listeners all’interno della struttura che abbiamo chiamato list. Per ulteriori dettagli rimandiamo alla lezione precedente.

Lo stratagemma permette di inoltrare l’azione a qualunque callback definita dal server, senza dover modificare il codice del modulo (il dispatcher). In questo modo il carico di lavoro (dal punto di vista dello sviluppatore) viene trasferito nella configurazione del server, come vedremo nella prossima pagina.

Prima di affrontare il codice del server creiamo una risorsa HTML che ci tornerà utile quando l’utente accede alla radice (root) del server. Copiamo il codice qui sotto all’interno di un file che chiameremo “home.html”: