🚀 Criando nosso primeiro servidor com Node.js: do zero à estrutura profissional
- #Node.js
- #JavaScript e Testes
- #API Rest
Quem está começando no Node.js costuma esbarrar sempre na mesma dúvida:
“Por onde eu começo?”
Neste guia, vou mostrar o caminho correto, seguindo boas práticas usadas no mercado, para criar um servidor Node.js organizado, escalável e fácil de manter.
Sem mágica. Sem gambiarra. Do jeito certo.
🧠 Antes de tudo: o que estamos construindo?
Vamos criar:
- Um servidor Node.js
- Utilizando Express
- Com rotas bem definidas
- Controllers separados
- Estrutura organizada desde o início
Esse modelo é amplamente usado em APIs REST e projetos reais de produção.
📁 Passo 1: Inicializando o projeto
No terminal, crie a pasta do projeto e inicialize o Node:
mkdir meu-servidor-node
cd meu-servidor-node
npm init -y
Isso cria o arquivo package.json, que é o coração do projeto.
📦 Passo 2: Instalando as dependências
Vamos instalar o Express, o framework mais usado para servidores Node:
npm install express
Para desenvolvimento, é recomendável usar o nodemon, que reinicia o servidor automaticamente:
npm install --save-dev nodemon
🧱 Passo 3: Criando a estrutura de pastas
Organização não é luxo, é sobrevivência no mercado.
Estrutura recomendada:
src/
├── controllers/
├── routes/
├── app.js
└── server.js
Essa separação deixa claro:
- Quem recebe a requisição
- Quem processa a lógica
- Quem responde
⚙️ Passo 4: Criando o servidor
Arquivo server.js:
const app = require('./app');
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Servidor rodando na porta ${PORT}`);
});
Aqui só cuidamos de subir o servidor. Nada mais.
🧠 Passo 5: Configurando o app
Arquivo app.js:
const express = require('express');
const routes = require('./routes');
const app = express();
app.use(express.json());
app.use(routes);
module.exports = app;
Esse arquivo centraliza:
- Middlewares
- Rotas
- Configurações globais
🧭 Passo 6: Criando nossas rotas
Arquivo routes/index.js:
const express = require('express');
const router = express.Router();
const exampleController = require('../controllers/exampleController');
router.get('/status', exampleController.status);
module.exports = router;
Aqui definimos o caminho, não a lógica.
🎯 Passo 7: Criando o controller
Arquivo controllers/exampleController.js:
exports.status = (req, res) => {
return res.status(200).json({
message: 'Servidor rodando com sucesso 🚀'
});
};
O controller é responsável por:
- Regra de negócio
- Validação
- Resposta da API
✅ Validação: por que separar tudo isso?
Separar responsabilidades traz benefícios reais:
- Código mais legível
- Testes mais fáceis
- Menos bugs
- Manutenção simples
É assim que times profissionais trabalham.
📌 Boas práticas desde o início
Algumas regras de ouro:
- Nunca misture lógica com rotas
- Controllers não devem acessar diretamente o servidor
- Nomeie arquivos de forma clara
- Use padrão REST
- Versione tudo com Git
Projeto pequeno também merece código limpo.
🛣️ Sequência correta para iniciar projetos Node
Sempre siga esta ordem:
- Inicializar projeto (
npm init) - Instalar dependências
- Definir estrutura
- Criar servidor
- Criar rotas
- Criar controllers
- Testar endpoints
- Só depois pensar em banco, auth e testes
Pular etapas gera dívida técnica.
🎯 Onde isso é usado na prática?
Esse padrão é base para:
- APIs REST
- Automação de testes
- Testes de API (QA)
- Microserviços
- Back-end de aplicações modernas
Quem domina essa base, aprende o resto com muito mais facilidade.
🧠 Conclusão
Node.js não é só tecnologia — é mentalidade.
Começar organizado economiza tempo, evita retrabalho e mostra maturidade técnica.
📌 Estou aplicando esse padrão em estudos e projetos voltados a APIs e automação de testes, sempre focando em boas práticas e aprendizado contínuo.
Se você está começando no Node ou quer revisar fundamentos, esse é o caminho.


