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. 

Come installare Node JS su Windows

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.

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:

node.js

e nominare il file appena creato come app.js:

crea nuova app Node.js con visual studio code

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.

node.js intellisense

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.

visual studio code intellisense

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

terminale integrato in visual studio code

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.

creare applicazione hello world..!

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.

creare e modificare codice con visual studio code

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.

installare express js

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.

Come installare Express 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.

Corso di Node JS per principianti

Antonio Lamorgese

Amministratore di rete e sviluppatore. Dopo anni di esperienza nel settore, ho ideato un sistema di gestione dati MYSQL in PHP senza scrivere una sola riga di codice. Scopri di piĆ¹....