Pular para o conteúdo

EXPLORER

API Node.js + Express + Sequelize
API-EXPRESS-SEQUELIZE
Controlador HTTP para gerenciar operações de usuários (CRUD e paginação).

Responsabilidade na Arquitetura

Atuar como porta de entrada HTTP. Lê parâmetros da requisição (query, params, body), chama os métodos adequados do UsuarioService e responde com status codes REST padronizados (200, 201, 204, 404). Delega exceções para o middleware central via next(erro).

Como Funciona o Código

Todos os métodos são assíncronos e estáticos. Eles recebem req, res e next do Express. Os blocos try/catch interceptam rejeições de Promises e as encaminham para o pipeline de tratamento de erros com next(erro).

Por Que Essa Abordagem?

Separar o Controller do Service garante que o código HTTP (status codes, headers, cookies) fique desacoplado das regras de negócio e de persistência. Isso permite testar os serviços isoladamente e trocar o framework web sem reescrever a lógica da aplicação.

Funções e Métodos Exportados (2)

UsuarioController.listar(req, res, next)

Lista usuários paginados a partir de query params (pagina, limite, busca).

Parâmetros:
  • req.query.pagina (number): Número da página atual (padrão 1)
  • req.query.limite (number): Itens por página (padrão 10)
Retorno: JSON com lista de usuários e metadados de paginação
UsuarioController.criar(req, res, next)

Recebe o payload validado no body e invoca o service para criar o usuário.

Retorno: Status 201 com o usuário recém-criado
Boas Práticas
  • Sempre repasse erros inesperados com next(erro) para evitar requisições presas sem resposta.
  • Nunca coloque lógica de hash de senhas ou consultas SQL diretas dentro do Controller.
  • Use status code 201 para criações bem-sucedidas e 204 para exclusões sem conteúdo.
Erros Comuns a Evitar
  • Esquecer de converter req.params.id para número antes de passar ao banco.
  • Tentar enviar duas respostas na mesma requisição esquecendo o return antes de res.status().
main
API Node.js + Express + Sequelize
99 linhas
2.5 KB
Espaços: 2
UTF-8
LF
JavaScript