Node.js: Como Criar Seu Primeiro Servidor (Passo a Passo)

Node.js - Criando seu primeiro servidor
Node.js - A plataforma que revolucionou o backend com JavaScript

Introdução

Node.js revolucionou o desenvolvimento backend ao permitir que JavaScript, originalmente uma linguagem do lado do cliente, fosse executado no servidor. Se você está começando na programação backend, criar um servidor básico é o primeiro passo para entender como aplicações web funcionam.

Por que Node.js?

O Node.js utiliza um modelo de I/O não bloqueante e orientado a eventos, tornando-o leve e eficiente para aplicações em tempo real com muitas conexões simultâneas.

Pré-requisitos

Antes de começar, certifique-se de ter:

Node.js instalado

Baixe a versão LTS no site oficial

Conhecimento básico de JavaScript

Funções, objetos e callbacks

Editor de código

VS Code, Sublime, etc.

Passo 1: Configurando o Projeto

Criar uma Pasta para o Projeto

Abra seu terminal e execute:

mkdir meu-servidor-node

Entrar na Pasta do Projeto

cd meu-servidor-node

Inicializar o Projeto Node.js

npm init -y

O que isso faz?

Cria um arquivo package.json que armazena informações do projeto (dependências, scripts, versão). A flag -y aceita todas as configurações padrão automaticamente.

Passo 2: Criando o Servidor

Criar o Arquivo do Servidor

touch server.js

Node.js inclui o módulo nativo http para criar servidores. No arquivo server.js adicione:

const http = require('http');  // Importa o módulo HTTP

const server = http.createServer((req, res) => {
    // Configura o cabeçalho da resposta (status 200 = sucesso)
    res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
    res.end('Olá, Mundo! Servidor Node.js funcionando!');
});

// Inicia o servidor na porta 3000
server.listen(3000, () => {
    console.log('Servidor ativo em http://localhost:3000'); // Mensagem no terminal ao iniciar
});

Executando o servidor:

node server.js

Para testar

Abra o navegador e acesse http://localhost:3000. A mensagem do res.end() será exibida.

Dica: Se a porta 3000 estiver ocupada, altere o número no server.listen().

Passo 3: Adicionando Rotas Básicas

Modifique o server.js para responder a diferentes URLs:

const server = http.createServer((req, res) => {
    // Rota principal
    if (req.url === '/') {
        res.writeHead(200, { 'Content-Type': 'text/html' });
        res.end('

Página Inicial

'); } // Rota "/sobre" else if (req.url === '/sobre') { res.writeHead(200, { 'Content-Type': 'text/html' }); res.end('

Sobre Nós

'); } // Rota não encontrada else { res.writeHead(404, { 'Content-Type': 'text/html' }); res.end('

Erro 404: Página não existe!

'); } });

Erros Comuns (e Como Evitá-los)

1. Porta já em uso

Cenário de Erro:

Error: listen EADDRINUSE: address already in use :::3000

Solução:

server.listen(3000).on('error', (err) => {
    if (err.code === 'EADDRINUSE') {
        console.log(`Porta 3000 em uso. Escolha outra porta (ex: 3001)!`);
    }
});

2. Bloqueio do Event Loop (Exemplo Crítico)

Código Perigoso:

const fs = require('fs');

// Usando readFileSync (síncrono) - TRAVA O SERVIDOR!
const data = fs.readFileSync('arquivo.txt');

const server = http.createServer((req, res) => {
    res.end(data);
});

Solução Correta (Assíncrona):

fs.readFile('arquivo.txt', (err, data) => {
    if (err) throw err;
    
    const server = http.createServer((req, res) => {
        res.end(data);
    });
    
    server.listen(3000);
});

3. Esquecer Headers de CORS

Cenário de Erro:

Frontend recebe Access-Control-Allow-Origin blocked.

Solução no Servidor:

res.setHeader('Access-Control-Allow-Origin', '*');  // Permite qualquer origem
res.setHeader('Content-Type', 'application/json');  // Para APIs JSON

Comandos Adicionais Úteis

Parar o Servidor

Para interromper a execução do servidor, no terminal pressione: Ctrl + C.

Dicas Profissionais

1. Use Express.js para Rotas Complexas

const express = require('express');
const app = express();

app.get('/produtos', (req, res) => {
    res.json([{ id: 1, nome: 'Teclado' }]);
});

app.listen(3000);

Instale com: npm install express

2. Adicione Logs com morgan

npm install morgan
const morgan = require('morgan');
app.use(morgan('dev'));  // Mostra logs no console

3. Variáveis de Ambiente com dotenv

Crie um arquivo .env:

PORT=3000
require('dotenv').config();
server.listen(process.env.PORT);

Conclusão

Você acabou de criar um servidor Node.js funcional! Para ir além, explore:

Bancos de dados

MySQL, PostgreSQL ou MongoDB com Mongoose

Autenticação

JWT ou OAuth2

Deploy

Utilize serviços como Railway ou Vercel

Feedback

Gostou? Compartilhe este artigo e comente qual tópico você quer ver aqui!

Mine Creative

Desenvolvedor de sites com 3 anos de experiência, apaixonado por compartilhar conhecimento e criar soluções inovadoras. Especialista em JavaScript e ecossistema frontend.

Enviar um comentário

Postagem Anterior Próxima Postagem