Como criar seu primeiro servidor HTTP com Node.js

Uma das formas mais rápidas de entender como o Node.js funciona é criando um servidor HTTP simples. Com poucas linhas de código já é possível responder requisições de um navegador.

O Problema

Quem está começando com Node.js geralmente instala o ambiente, mas não sabe exatamente como iniciar um servidor ou como o Node lida com requisições HTTP.

Diferente de outros ambientes backend que dependem de servidores externos como Apache ou Nginx, no Node.js o próprio código cria e executa o servidor.

A Solução

O Node possui um módulo nativo chamado http, que permite criar um servidor web de forma simples.

Criando o arquivo do servidor

Crie um arquivo chamado:

server.js

Agora adicione o seguinte código:

const http = require('http');
 
const servidor = http.createServer((req, res) => {
 
    res.writeHead(200, {'Content-Type': 'text/plain'});
 
    res.end('Meu primeiro servidor Node.js');
 
});
 
servidor.listen(3000, () => {
    console.log('Servidor rodando em http://localhost:3000');
});

Executando o servidor

No terminal, execute:

node server.js

Se tudo estiver correto, aparecerá a mensagem:

Servidor rodando em http://localhost:3000

Agora abra o navegador e acesse:

http://localhost:3000

O navegador exibirá a mensagem retornada pelo servidor.

Entendendo o código

Alguns pontos importantes:

  • require(‘http’) carrega o módulo HTTP do Node
  • createServer() cria o servidor
  • req representa a requisição recebida
  • res representa a resposta enviada ao cliente
  • listen(3000) define a porta onde o servidor irá escutar

Toda vez que alguém acessar o servidor, a função dentro do createServer será executada.

Respondendo diferentes rotas

Também é possível verificar a URL acessada.

const http = require('http');
 
const servidor = http.createServer((req, res) => {
 
    if (req.url === '/') {
        res.end('Página inicial');
    } 
    else if (req.url === '/sobre') {
        res.end('Página sobre');
    } 
    else {
        res.end('Página não encontrada');
    }
 
});
 
servidor.listen(3000);

Assim é possível criar diferentes respostas para cada rota acessada.

Conclusão

Com poucas linhas de código já é possível criar um servidor HTTP funcional utilizando Node.js.

Esse é o conceito básico que frameworks como Express utilizam internamente para criar aplicações web e APIs.

No próximo post da série vamos entender um dos conceitos mais importantes do Node.js: o Event Loop.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima