Skip to content

Latest commit

 

History

History
71 lines (51 loc) · 2.88 KB

File metadata and controls

71 lines (51 loc) · 2.88 KB

Project Context

Purpose

API básica em Node.js com Express para fins educacionais. Demonstra a configuração de uma API REST moderna com JavaScript puro, usando ES Modules, hot-reload durante desenvolvimento e testes automatizados.

Tech Stack

  • Runtime: Node.js (ES Modules habilitado via "type": "module")
  • Framework Web: Express 5.1.0
  • Desenvolvimento: Nodemon 3.1.10 (auto-reload)
  • Testes: Jest 29.7.0 + Supertest 7.0.0
  • Linguagem: JavaScript (ES6+, sem TypeScript)

Project Conventions

Code Style

  • Formato de módulos: ES Modules (import/export)
  • Aspas: Aspas duplas para strings
  • Nomenclatura: camelCase para variáveis e funções
  • Constantes: UPPER_CASE para constantes como PORT
  • Exportações: Exportar a aplicação Express como named export (export const app) para permitir testes
  • Emojis: Usados nas mensagens de resposta e logs para tornar a experiência mais amigável

Architecture Patterns

  • Separação de responsabilidades:
    • src/index.js contém o servidor Express e as rotas
    • A aplicação é exportada separadamente da inicialização do servidor
    • O servidor não inicia quando NODE_ENV === "test" para permitir testes
  • Estrutura:
    • /src - código fonte da aplicação
    • /__tests__ - testes automatizados
    • /docs - documentação do projeto
    • /openspec - especificações e gerenciamento de mudanças

Testing Strategy

  • Framework: Jest com suporte a ES Modules via NODE_OPTIONS=--experimental-vm-modules
  • Testes de API: Supertest para testar endpoints HTTP
  • Padrão: Tests nomeados com .test.js dentro da pasta __tests__/
  • Cobertura: Testes focados em validar status HTTP e conteúdo das respostas
  • Execução: npm test

Git Workflow

  • .gitignore configurado para excluir:
    • node_modules/ - dependências npm
    • dist/ - arquivos compilados

Domain Context

Este é um projeto educacional/tutorial que ensina desenvolvedores a:

  • Configurar uma API Node.js moderna do zero
  • Usar ES Modules em ambiente Node.js
  • Implementar hot-reload com Nodemon
  • Escrever testes para APIs REST
  • Seguir convenções de desenvolvimento moderno em JavaScript

Important Constraints

  • Sem TypeScript: O projeto usa JavaScript puro intencionalmente para simplicidade educacional
  • ES Modules obrigatório: Toda a base de código deve usar import/export, não require/module.exports
  • Compatibilidade Jest: Requer NODE_OPTIONS=--experimental-vm-modules para suportar ES Modules
  • Modo de teste: O servidor Express não deve inicializar durante testes (verificação de NODE_ENV)

External Dependencies

Nenhuma dependência externa (APIs, bancos de dados, serviços cloud). Este é um projeto standalone que roda completamente em localhost:3000.