NodeJS é uma plataforma de desenvolvimento de aplicações em JavaScript, que permite a construção de aplicações web escaláveis de alta performance. Uma das características mais marcantes do NodeJS é a capacidade de criar servidores HTTP de forma rápida e simples. Neste capítulo, vamos aprender como criar um servidor básico com NodeJS e trabalhar com requisições HTTP.
Instalação do NodeJS
Antes de começar, é necessário instalar o NodeJS em seu sistema operacional. Você pode baixar a versão mais recente do NodeJS no site oficial (https://nodejs.org). Após o download, siga as instruções de instalação fornecidas pelo instalador. Para verificar se a instalação foi bem-sucedida, abra o terminal e digite o seguinte comando: node -v. Se a instalação for bem-sucedida, o terminal exibirá a versão do NodeJS instalada em seu sistema.
Criando um servidor básico com NodeJS
Para criar um servidor básico com NodeJS, você precisa criar um arquivo JavaScript e escrever algumas linhas de código. Vamos criar um arquivo chamado server.js e adicionar o seguinte código:
const http = require('http');
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(3000, '127.0.0.1', () => {
console.log('Server running at http://127.0.0.1:3000/');
});
Este código cria um servidor HTTP que escuta na porta 3000. Quando uma requisição é recebida, o servidor responde com o status HTTP 200 (OK) e o texto "Hello World".
Trabalhando com requisições HTTP
Ao criar um servidor com NodeJS, você pode manipular requisições HTTP de várias maneiras. No exemplo acima, nós apenas respondemos com um texto simples. No entanto, você pode enviar arquivos, JSON, HTML e muito mais.
Para manipular requisições HTTP, você pode usar o objeto de requisição (req) que é passado para a função de callback do método createServer. Este objeto contém informações sobre a requisição HTTP, como o método HTTP, o URL, os cabeçalhos e o corpo da requisição.
Por exemplo, você pode verificar o método HTTP da requisição da seguinte maneira:
const http = require('http');
const server = http.createServer((req, res) => {
console.log(req.method);
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(3000, '127.0.0.1', () => {
console.log('Server running at http://127.0.0.1:3000/');
});
Este código exibirá o método HTTP da requisição no console. Se você acessar o servidor com um navegador, o método HTTP será GET.
Você também pode verificar o URL da requisição. Por exemplo, você pode responder de maneira diferente com base no URL da requisição da seguinte maneira:
const http = require('http');
const server = http.createServer((req, res) => {
if (req.url === '/about') {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('About\n');
} else {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
}
});
server.listen(3000, '127.0.0.1', () => {
console.log('Server running at http://127.0.0.1:3000/');
});
Este código responderá com "About" se o URL da requisição for "/about". Caso contrário, responderá com "Hello World".
Em resumo, criar um servidor básico com NodeJS é simples e rápido. Além disso, o NodeJS fornece uma API poderosa para manipular requisições HTTP, o que permite criar aplicações web complexas e escaláveis.