Módulo HTTP Node.js
O módulo HTTP integrado
O Node.js tem um módulo integrado chamado HTTP, que permite que o Node.js transfira dados pelo Hyper Text Transfer Protocol (HTTP).
Para incluir o módulo HTTP, use o
require()
método:
var http = require('http');
Node.js como servidor web
O módulo HTTP pode criar um servidor HTTP que escute as portas do servidor e dê uma resposta ao cliente.
Use o createServer()
método para criar um servidor HTTP:
Exemplo
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
A função passada para o http.createServer()
método, será executada quando alguém tentar acessar o computador na porta 8080.
Salve o código acima em um arquivo chamado "demo_http.js" e inicie o arquivo:
Inicie demo_http.js:
C:\Users\Your Name>node demo_http.js
Se você seguiu as mesmas etapas em seu computador, verá o mesmo resultado do exemplo: http://localhost:8080
Adicionar um cabeçalho HTTP
Se a resposta do servidor HTTP deve ser exibida como HTML, você deve incluir um cabeçalho HTTP com o tipo de conteúdo correto:
Exemplo
var http = require('http');
http.createServer(function
(req, res) {
res.writeHead(200,
{'Content-Type': 'text/html'});
res.write('Hello
World!');
res.end();
}).listen(8080);
O primeiro argumento do res.writeHead()
método é o código de status, 200 significa que tudo está OK, o segundo argumento é um objeto contendo os cabeçalhos de resposta.
Leia a string de consulta
A função passada para o http.createServer()
tem um req
argumento que representa a solicitação do cliente, como um objeto (objeto http.IncomingMessage).
Este objeto tem uma propriedade chamada "url" que contém a parte da url que vem depois do nome do domínio:
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);
Salve o código acima em um arquivo chamado "demo_http_url.js" e inicie o arquivo:
Inicie demo_http_url.js:
C:\Users\Your Name>node demo_http_url.js
Se você seguiu as mesmas etapas em seu computador, deverá ver dois resultados diferentes ao abrir esses dois endereços:
Produzirá este resultado:
/summer
Produzirá este resultado:
/winter
Dividir a string de consulta
Existem módulos integrados para dividir facilmente a string de consulta em partes legíveis, como o módulo URL.
Exemplo
Divida a string de consulta em partes legíveis:
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);
Salve o código acima em um arquivo chamado "demo_querystring.js" e inicie o arquivo:
Inicie demo_querystring.js:
C:\Users\Your Name>node demo_querystring.js
O endereço:
Produzirá este resultado:
2017 July
Leia mais sobre o módulo de URL no capítulo Módulo de URL do Node.js.