Sviluppa la tua prima web app con Node JS
Come sai, Javascript ĆØ un linguaggio utilizzabile solo ed esclusivamente lato client, cioĆØ, ĆØ eseguibile soltanto da un browser web. Node js, invece, ĆØ un sistema utilizzato per eseguire e sviluppare applicazioni Javascript lato server. CioĆØ, tramite Node.Js, Javascript ĆØ eseguibile da un server web.
Questo ci permette di sfruttare uno stesso linguaggio, sia per sviluppare il front-end di unāapplicazione, sia per sviluppare il back-end. CioĆØ uno stesso linguaggio per sviluppare unāintera applicazione web.
Il comando, lato server, per eseguire applicazioni Node.Js ĆØ node, mentre, il suo Package Manager ĆØ npm. Attraverso il Package Manager, di Node.Js, ĆØ possibile installare moduli e librerie aggiuntive, che di volta in volta, sono necessarie per una determinata tipologia di applicazioni. Estendendo di fatto Node.Js.
In questa guida vedremo come realizzare una prima applicazione Node.Js sfruttando Visual Studio Code, il noto editor di testi open source della Microsoft.
LEGGI ANCHE: 5 alternative open source a Visual Studio Code
Visual Studio Code supporta vari linguaggi di programmazione, JavaScript e TypeScript sono presenti in modalitĆ predefinita oltre alle funzionalitĆ di debug di Node.js. Tuttavia, per eseguire un’applicazione Node.js, dovrai installarlo sul tuo computer.
Per poter iniziare correttamente, in questo video, troverai una guida utile su come installare Node.js sul tuo computer.
Il Node Package Manager ĆØ giĆ incluso nella distribuzione Node JS. Dovrai solo aprire un nuova finestra del terminale o prompt dei comandi e, potrai accedere direttamente ai comandi node e npm da riga di comando. Se cosƬ non fosse, assicurati che la directory di installazione di node js sia presente allāinterno della variabile dāambiente PATH.
Oppure, per verificare che Node js sia installato correttamente sul tuo computer, apri il terminale e digita node –version e dovresti vedere a video la versione corrente di Node.js installata.
Indice del Post...
1. Iniziamo con il classico Hello World con Node.JS
Iniziamo creando l’applicazione Node.js piĆ¹ semplice possibile, il classico “Hello World”. Quindi, crea una cartella vuota e chiamala “hello“. In ambiente Windows, cerca e apri VS Code sul tuo computer. In ambiente Linux, apri il terminale, e digita le seguenti righe di codice:
mkdir hello
cd hello
code .
Il simbolo punto ‘.’ fa riferimento alla cartella corrente, quindi VS Code si avvierĆ e aprirĆ la cartella Hello. Essendo Visual Studio Code un editor di testo avanzato, non gestisce progetti, come fa Visual Studio, per cui, la cartella hello e i file presenti al suo interno, rappresentano, per VS Code, il progetto da gestire. Quindi, dalla barra degli strumenti di Esplora file, premere il pulsante Nuovo file:
e nominare il file appena creato come app.js:
Lāutilizzo dell’estensione js, del file, informa VS Code che il file app.js, va interpretato come file JavaScript e valuterĆ il suo contenuto con lāinterprete del linguaggio JavaScript presente per default in VS Code. Ad ogni modo, fai riferimento a questa guida del linguaggio JavaScript di VS Code per ulteriori informazioni sul supporto a JavaScript.
Ora, inserisci le seguenti righe di codice allāinterno del file app.js, creando una semplice variabile stringa e inviando il contenuto della stringa alla console:
var msg = 'Hello World';
console.log(msg);
Eā da notare che, quando in VS Code si digitano dei comandi da tastiera, la funzionalitĆ IntelliSense dellāeditor, presenta automaticamente a video tutto ciĆ² che ha a che fare con lāoggetto console. Pertanto vedrai visualizzati tutti i metodi e le proprietĆ gestite da questo tipo di oggetto.
Inoltre, VS Code, ha giĆ capito che msg, ĆØ una stringa inizializzata a āHello Worldā. Pertanto, se digiti msg, IntelliSense mostrerĆ tutte le funzionalitĆ disponibili su una stringa.
Dopo aver apportato tutte le modifiche al file app.js, puoi salvare il file premendo la combinazione di tasti (Ctrl+S).
2. Come eseguire Hello World
Eseguire app.js ĆØ molto semplice, basta digitare da terminale il seguente comando:
node app.js
Dovresti vedere l’output “Hello World” sul terminale e successivamente Node.js passerĆ il controllo a Vs Code. Per testare le applicazioni allāinterno di VS Code non ĆØ necessario aprire e chiudere in continuazione lāeditor, ma, puoi sfruttare il terminale integrato in VS Code e di conseguenza puoi utilizzarlo per eseguire i comandi direttamente allāinterno della sua shell integrata. Quindi, puoi eseguire Node.js direttamente dal terminale di Vs Code ed evitare di uscire dallāeditor durante l’esecuzione del programma.
Pertanto dal menĆ¹principaledi VS Code recati su Visualizza > Terminale ( Ctrl+Ć²) e si aprirĆ il terminale integrato dove potrai eseguire il seguente comando: node app.js
3. Esegui il Debug con Node.JS
Come tutti gli editor che si rispettano, VS Code viene fornito con un debugger giĆ preinstallato per le applicazioni Node.js. Il Debug ĆØ uno strumento fondamentale per uno sviluppatore, infatti ti permette di eseguire passo-passo il codice, monitorando variabili e oggetti in fase di esecuzione. Adesso, proviamo a lanciare il debug della nostra semplice applicazione Hello World.
Come tutti i debug, anche questo si attiva nel punto stabilito precedentemente dal programmatore. Questo punto si chiama BreakPoint, o punto di interruzione.
Per impostare un punto di interruzione, o un BreakPoint, in app.js, devi posizionare il cursore presente nell’editor sulla riga di codice interessata e premere il tasto funzione F9, o, cliccare con il pulsante sinistro del mouse nel margine sinistro dell’editor accanto ai numeri di riga. Vedrai apparire un cerchio rosso accanto alla riga di codice come conferma della corretta impostazione del BreakPoint in quel preciso punto dello script.
A questo punto non ti resta che eseguire lo script, app.js, avviando il debug, e cioĆØ, seleziona la voce Esegui o Run, presente nel menĆ¹ principale, e successivamente premere F5:
Il tuo punto di interruzione verrĆ raggiunto, in men che non si dica, e potrai visualizzare gli oggetti e le variabili che passo-passo Node.js inizializzerĆ . Nota che VS Code visualizza una barra di stato di colore diverso per indicare che ĆØ in modalitĆ di Debug e viene visualizzata anche la console di debug. Tramite la console di debug, avrai la possibilitĆ di eseguire una riga alla volta lo script e monitorare eventuali oggetti e variabili presenti.
Adesso proveremo a creare un altro tipo di applicazione molto usata in Node.js. Quindi chiudi tutto in VS Code e proviamo a creare unāapplicazione Express Node.js. Se vuoi, puoi anche eliminare la cartella “Hello“, creata precedentemente, poichĆ© non ĆØ piĆ¹ necessaria.
4. Un semplice server web scritto con Node.JS
Node.js ha una caratteristica fondamentale che, lo distingue da javascript. Parlo della programmazione ad eventi asincroni. In questo esempio, ĆØ mostrato come creare con poche semplici righe di codice un vero e proprio server web perfettamente funzionante. Il codice seguente, non ha bisogno di spiegazioni, infatti, la parte di codice evidenziata non fa altro che istanziare un oggetto server che, una volta invocato tramite il browser, stamperĆ la classica frase Hello World nella finestra del browser stesso.
Sostanzialmente il codice Node.JS, sotto riportato, resterĆ inattivo fino a quando nella barra degli indirizzi del browser, non verrĆ invocato la seguente URL: http://localhost:3000, prima perĆ² ĆØ necessario avviare lo script tramite: node nomescript.js.
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World');
});
server.listen(port, hostname, () => {
console.log('Server avviato su http://${hostname}:${port}/');
});
Ma torniamo a noi, cosa c’entra in tutto questo la programmazione ad eventi asincrona? Beh, una funzione di CallBack ĆØ una funzione passata come parametro ad un’altra funzione. Ad esempio, in questo codice Javascript, la funzione di CallBack ĆØ un EventListener, invocato nel momento in cui si clicca sul pulsante HTML con ID = ‘Button1’:
document.getElementById("Button1").addEventListener("click", function() {
console.log("Tasto premuto");
}, false);
In Node.JS questo modo di programmare rientra nella normalitĆ delle cose. Nel codice riguardante il nostro semplice server web, la funzione di callback Listen, viene richiamata nel momento in cui il browser invoca l’indirizzo web specificato nello script stesso. Questo permette a Node.JS di estendere le funzioni, in questo caso Listen, personalizzandola secondo quanto previsto dallo sviluppatore.
Inoltre, Node.JS, ha la capacitĆ di eseguire il codice in modalitĆ bloccante e non bloccante. Questo significa che, esistono in Node.JS, delle funzioni a cui ĆØ possibile passare delle callback, che eseguono il codice in modalitĆ asincrona o sincrona.
Nell’esempio che segue, leggeremo un file di testo in modalitĆ sincrona, cioĆØ bloccante, in quanto readFileSync non prevede funzioni di callback da chiamare:
var fs = require("fs");
var data = fs.readFileSync('input.txt');
console.log(data.toString());
In quest’altro esempio, leggeremo un file di testo in modalitĆ asincrona, cioĆØ non bloccante, in quanto a readFile ĆØ stata passata una funzione di callback, che leggerĆ input.txt in modalitĆ asincrona:
var fs = require("fs");
fs.readFile('input.txt', function (err, data) {
console.log(data.toString());
});
console.log('Questo messaggio viene elaborato mentre readFile legge input.txt');
5. Come creare un’applicazione Express Node.JS
Express ĆØ un framework molto popolare per la creazione e l’esecuzione di applicazioni Node.js. Express ti permette di creare unāapplicazione Node.js con determinate caratteristiche, utilizzando lo strumento Express Generator. Express Generator viene fornito come modulo separato, per cui per installarlo devi ricorrere al famoso node package manager, e cioĆØ, npm.
Prima di proseguire, sempre tramite la console dei comandi o il terminale, verifica di aver npm installato correttamente sul computer, quindi, digita npm –help da terminale, e dovresti vedere la documentazione di utilizzo di npm.
Nel caso in cui, npm non fosse installato, digita questo comando dal terminale di VS Code: npm npm.
Dopo di che devi necessariamente installare lāExpress Generator digitando le seguenti righe di codice da un terminale:
npm install -g express-generator
Lo switch āg, presente nel comando precedentemente eseguito, installa l’Express Generator come strumento globale sulla tua macchina e di conseguenza potrai eseguirlo da qualsiasi directory.
Siamo arrivati finalmente al punto in cui dobbiamo creare la nostra prima applicazione express. Lāapplicazione express che creeremo si chiamerĆ myExpressApp. Quindi, ora digita questo comando da terminale:
express myExpressApp --view pug
Il comando express, creerĆ una nuova cartella chiamata myExpressApp, contenente lāintera struttura della tua applicazione. I parametri –view pug, indicano al generatore di codice di utilizzare il motore pug per la generazione dellāintera struttura dellāapplicazione.
Per installare tutte le dipendenze dell’applicazione, cioĆØ, tutte le librerie necessarie a Express per funzionare allāinterno di myExpressApp, devi posizionarti allāinterno della nuova cartella creata ed eseguire npm install:
cd myExpressApp
npm install
A questo punto, dovremmo verificare che lāapplicazione funzioni. L’applicazione Express generata ha un file, nominato package.json, che include uno script di startup che verrĆ eseguito, da terminale, con questo comando:
npm start
VerrĆ avviato il server Web Node.js e da questo momento in poi ti sarĆ possibile accedere a http://localhost:3000 per vedere l’applicazione myExpressApp in esecuzione allāinterno del tuo browser web preferito.
6. Come modificare e personalizzare un’applicazione Express Node.JS
E’ logico che Express Node.js, crea una struttura di base dell’applicazione web da sviluppare, mentre il resto va specificato dal programmatore successivamente e modificando opportunamente alcuni file prodotti tramite l’Express Generator. In questo video, avrai modo di vedere come prendere possesso di un’applicazione sviluppata con Express Node.JS.
7. Imparare Node.JS in poco piĆ¹ di un’ora
In questo video tutorial avrai modo di imparare a programmare con Node.JS, in poco piĆ¹ di un’ora. Questo ti permetterĆ di esplorare tutte le caratteristiche del framework e tutti i suoi punti di forza.