Construir um servidor Web básico com Node.js puro
48d atrás
Neste tutorial vamos usar a biblioteca http do #NodeJS para construir um servidor Web.
Comece criando um arquivo index.js, e no seu início importe a biblioteca http:
import { createServer } from 'http';
O próximo passo é usar o método createServer, para criar o servidor Web:
const server = createServer((req, res) => {
});
Para terminar a primeira parte, inclua o método listen, que irá inicializar o servidor:
const port = 1000;
server.listen(port, () => console.log(`Servidor rodando na porta ${port}`));
Volte na função que é passada no método createServer, vamos adicionar algum conteúdo dentro dela.
Dentro do escopo da função adicione o seguinte código:
const { method, url } = req;
if (method === 'GET' && url === '/users') {
// Método GET /users
} else if (method === 'POST' && url === '/users') {
// Método POST /users
} else {
// 404
}
- GET /users, vai simular uma listagem de usuários
- POST /users vai simular a criação de um usuário
- Qualquer outra requisição vai retornar uma mensagem de não encontrado 404
Vamos preencher o primeiro método. Antes disso, adicione antes do método createServer um array com usuários:
const users = [
{ id: 1, name: 'João' },
{ id: 2, name: 'Maria' },
{ id: 3, name: 'José' }
];
if (method === 'GET' && url === '/users') {
}
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify(users));
Ele retorna um sucesso com os usuários em formato JSON.
No segundo método:
else if (method === 'POST' && url === '/users') {
}
Adicione o código a seguir entre o else if:
let body = '';
req.on('data', chunk => body += chunk.toString()); // Concatena o corpo da requisição
// Ao fim da requisição, executa o trecho a seguir
req.on('end', () => {
try {
const user = JSON.parse(body); // Converte o JSON para um objeto
users.push(user); // adiciona o novo usuário a lista de usuários
res.writeHead(201, { 'Content-Type': 'text/plain' });
res.end('Usuário criado com sucesso!');
} catch (error) {
res.writeHead(400, { 'Content-Type': 'text/plain' });
res.end('Requisição inválida');
}
});
O método acima vai simular a criação de um usuário. Ele recebe um JSON e simplesmente adiciona no array de usuários. Se essa operação der certo ele retorna um status 201, caso contrário ele retorna um erro 400.
Por fim, volte no último método:
else {
}
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end('Página não encontrada');
Agora, com o Node.js instalado, você pode rodar o servidor com:
node index.js
Caso tenha ficado confuso, você pode conferir o código completo no link abaixo:
Node.js basic Web server
Node.js basic Web server. GitHub Gist: instantly share code, notes, and snippets.
Comentários (0)