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.