Node.js ci permette di leggere con estrema facilità i parametri di una query string GET passati attraverso un URL. Questa estrema semplicità si concretizza in un utilizzo immediato di questa caratteristica.

Per sfruttare questa caratteristica di Node dobbiamo creare un server che intercetti le richieste dei client. La prima cosa da fare è includere i moduli http e url:


'use strict';

const http = require('http');
const url = require('url');
const port = process.env.PORT || 3000;

Quindi creiamo il server, in ascolto sulla porta scelta:


http.createServer((request, response) => { 
   // qui la gestione della richiesta e della risposta
}).listen(port);

Node è event-driven, quindi il prossimo passo è intercettare la fine della richiesta tramite l'evento end:


request.on('end', () => {
	// gestione della richiesta
});

Quindi usiamo il metodo parse() del modulo url per estrarre i dati della richiesta sotto forma di un oggetto:


const { query } = url.parse(request.url, true);

Ora abbiamo l'intera query string sotto forma di oggetto a cui possiamo accedere:


// status HTTP 200 come header 
response.writeHead(200, { 
         'Content-Type': 'text/html'
}); 
// Inviamo i dati e chiudiamo la risposta 
response.end(`I tuoi dati: ${query.data}`);

Quindi digitando alla console:


node index.js

e utilizzando ad esempio l'URL http://localhost:3000?data=Test vedremo il risultato.