Modulo HTTP Node.js
Il modulo HTTP integrato
Node.js ha un modulo integrato chiamato HTTP, che consente a Node.js di trasferire dati tramite Hyper Text Transfer Protocol (HTTP).
Per includere il modulo HTTP, utilizzare il
require()
metodo:
var http = require('http');
Node.js come server Web
Il modulo HTTP può creare un server HTTP che ascolta le porte del server e restituisce una risposta al client.
Usa il createServer()
metodo per creare un server HTTP:
Esempio
var http = require('http');
//create a server object:
http.createServer(function
(req, res) {
res.write('Hello World!'); //write a response to the
client
res.end(); //end the response
}).listen(8080); //the
server object listens on port 8080
La funzione passata nel http.createServer()
metodo verrà eseguita quando qualcuno tenterà di accedere al computer sulla porta 8080.
Salva il codice sopra in un file chiamato "demo_http.js" e avvia il file:
Avvia demo_http.js:
C:\Users\Your Name>node demo_http.js
Se hai seguito gli stessi passaggi sul tuo computer, vedrai lo stesso risultato dell'esempio: http://localhost:8080
Aggiungi un'intestazione HTTP
Se la risposta del server HTTP deve essere visualizzata come HTML, dovresti includere un'intestazione HTTP con il tipo di contenuto corretto:
Esempio
var http = require('http');
http.createServer(function
(req, res) {
res.writeHead(200,
{'Content-Type': 'text/html'});
res.write('Hello
World!');
res.end();
}).listen(8080);
Il primo argomento del res.writeHead()
metodo è il codice di stato, 200 significa che tutto è OK, il secondo argomento è un oggetto contenente le intestazioni della risposta.
Leggi la stringa di query
La funzione passata in http.createServer()
ha un req
argomento che rappresenta la richiesta dal client, come un oggetto (oggetto http.IncomingMessage).
Questo oggetto ha una proprietà chiamata "url" che contiene la parte dell'url che segue il nome di dominio:
demo_http_url.js
var http = require('http');
http.createServer(function
(req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(req.url);
res.end();
}).listen(8080);
Salva il codice sopra in un file chiamato "demo_http_url.js" e avvia il file:
Avvia demo_http_url.js:
C:\Users\Your Name>node demo_http_url.js
Se hai seguito gli stessi passaggi sul tuo computer, dovresti vedere due risultati diversi quando apri questi due indirizzi:
Produrrà questo risultato:
/summer
Produrrà questo risultato:
/winter
Dividi la stringa di query
Ci sono moduli integrati per dividere facilmente la stringa di query in parti leggibili, come il modulo URL.
Esempio
Dividi la stringa di query in parti leggibili:
var http = require('http');
var url = require('url');
http.createServer(function (req, res) {
res.writeHead(200,
{'Content-Type': 'text/html'});
var q = url.parse(req.url,
true).query;
var txt = q.year + " " +
q.month;
res.end(txt);
}).listen(8080);
Salva il codice sopra in un file chiamato "demo_querystring.js" e avvia il file:
Avvia demo_querystring.js:
C:\Users\Your Name>node demo_querystring.js
L'indirizzo:
Produrrà questo risultato:
2017 July
Maggiori informazioni sul modulo URL nel capitolo Modulo URL di Node.js.