Introduzione a Node.js

postato in: Articoli, Guida, Server | 0

nodejs-2560x1440

Buongiorno a tutti! Recentemente, in un post, avevamo spiegato come creare un Bot di Telegram utilizzando Node.js, senza andare troppo nel dettaglio su questa nuova tecnologia. Oggi cerchiamo di capire meglio Node.js.

Per chi ha programmato, o comunque ha lavorato in ambiente web, sicuramente conosce qualche tecnologia, come ad esempio Php, Asp, JQuery, Apache e molte altre. In particolare, le tecnologie che utilizzano il linguaggio Javascript, sono molto conosciute nel lato front-end. Da un paio di anni ha iniziato a spopolare una nuova tecnologia, ossia Node.js. Essa utilizza il linguaggio Javascript ma nel lato back-end, sostituendo di fatto molte tecnologie, come ad esempio il famosissimo e molto utilizzato php. Ovviamente per fare girare il Javascript nel server ci vuole una qualche componente che sia in grado di farlo, infatti viene utilizzato il motore Javascript V8. L’esecuzione del codice risulta molto più rapida e snella rispetto alle altre tecnologie poiché Node.js è basato sugli eventi, ossia quando succede un determinato evento esso viene gestito in modo asincrono rispetto all’esecuzione normale del codice, rendendo così più veloci le risposte al client, poiché molte cose vengono fatte in parallelo. Un altro punto di forza sono i suoi numerosi moduli, poiché attorno a Node.js ci sta una vasta community. Ne esistono davvero tanti, ad esempio per la gestione dei db, moduli che implementano le API dei social network, ad esempio nel post sul Bot di Telegram avevamo utilizzato un modulo che implementa le API dei Bot di Telegram.

Ovviamente Node.js può anche essere utilizzato per creare degli script normali come un comunissimo linguaggio di programmazione, infatti se ricordate il post sul Bot, era stato creato un semplice script che utilizza semplicemente dei socket per connettersi ai server di Telegram.

Vediamo ora come installare tutto il necessario per creare un’applicazione base con Node.js.

Su Arch Linux è molto semplice, poiché si trova già nei repository, quindi basta dare il seguente comando:

 

sudo pacman -Sy

sudo pacman -S nodejs

 

Per Ubuntu e derivate, il comando di installazione dovrebbe essere il seguente:

 

sudo apt-get update

sudo apt-get install nodejs

 

Una volta installato, nella shell si ha il comando node, quindi possiamo verificare la sua versione dando il seguente comando:

 

node -v

 

Bene, vediamo ora come creare la base di un’applicazione. Una delle caratteristiche principali di Node.js è che si può creare un’applicazione web o un sito senza il supporto diretto di Apache, in poche parole noi, nello script, creeremo un oggetto che starà in ascolto su una porta, e si comporterà esso stesso da web server.

Procediamo. Creiamo un file di nome “app.js”:

 

touch app.js

 

e all’interno inseriamo il seguente codice:

 

var http = require('http');

http.createServer(function (req, res) {

  res.writeHead(200, {'Content-Type': 'text/plain'});

  res.end('Tux Maniacs\n');

}).listen(8080, '127.0.0.1');

 

Come potete vedere è molto semplice. In sintesi abbiamo inizializzato una variabile http che ha le proprietà della libreria http di Node.js. All’interno questo modulo ha una funzione createServer che prende in input una callback, ossia una funzione che andrà ad eseguire ogni volta che riceverà una richiesta web. Tale funzione ha due parametri: req e res. Il primo parametro è solitamente utilizzato per variabili di sessione ed altri scopi che andremo ad esaminare più in dettaglio in qualche altro post, mentre il secondo, res, viene utilizzato per rispondere al client, infatti questo oggetto ha al suo interno dei metodi come writeHead o end dove il primo viene utilizzato per specificare il codice di risposta http, mentre nel secondo scriviamo in output un testo che verrà visualizzato nel browser. Infine sull’oggetto http chiamiamo il metodo listen che ci servirà per mettere in ascolto il server sulla porta 8080 all’indirizzo specificato (in questo caso 127.0.0.1 ossia localhost).

La variabile res ha ovviamente altri metodi al suo interno come ad esempio json che invia al client una variabile utilizzando la sintassi di json, oppure abbiamo redirect che dato un indirizzo come parametri il server reindirizza il client su tale indirizzo, oppure abbiamo send che semplicemente invia al client del testo.

Come avete potuto notare, Node.js è molto facile da utilizzare. Esso si può usare in diversi contesti, come ad esempio la creazione di un sito single-page, oppure di un’applicazione che si basa su richieste json. Il fatto che utilizzi il Javascript, rende la vita più facile allo sviluppatore, poiché non deve imparare un nuovo linguaggio.

 

Conclusioni

Certamente questa nuova tecnologia può rendere più semplice la vita al programmatore, anche se bisogna abituarsi al fatto che tale framework esegua molte porzioni di codice in modo asincrono. E voi avete già provato Node.js? Secondo voi in quale contesto vi sembra più adatto utilizzarlo?

Dottore in Informatica. Da sempre appassionato di Linux, reti informatiche, sicurezza e, in modo amatoriale, all'elettronica. Il mio intento è quello di trasmettere le mie conoscenze ad altri appassionati.

Lascia un commento