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.
- 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)
- 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
- Separação de responsabilidades:
src/index.jsconté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
- 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.jsdentro da pasta__tests__/ - Cobertura: Testes focados em validar status HTTP e conteúdo das respostas
- Execução:
npm test
.gitignoreconfigurado para excluir:node_modules/- dependências npmdist/- arquivos compilados
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
- 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ãorequire/module.exports - Compatibilidade Jest: Requer
NODE_OPTIONS=--experimental-vm-modulespara suportar ES Modules - Modo de teste: O servidor Express não deve inicializar durante testes (verificação de
NODE_ENV)
Nenhuma dependência externa (APIs, bancos de dados, serviços cloud). Este é um projeto standalone que roda completamente em localhost:3000.