1
resposta

[Bug] Erro ao pedir requisição no Postman

Boa noite, tudo bem? Estou com problemas na hora de executar o código dentro do Postman, onde ao tentar pedir a requisição "pegarTodos" no postaman com o GET, ele fica em um loop de carregamento e me retorna o erro: "socket hang up".
Meu código atual:

Controller

class Controller {
  constructor (entidadeService) {
    this.entidadeService = entidadeService;   
  }

  async getAll (req, res) {
    try {
      const listarTodosRegistros =  await this.entidadeService.getAllRegisters();
      return res.status(200).json(listarTodosRegistros);
    } catch (error) {
      //
    }
    
  }
}

module.exports = Controller;

pessoaRoute

const {Router} = require('express');
const PessoaController = require('../controllers/PessoaController.js');

const pessoaController = new PessoaController();
const router = Router();

router.get('/pessoas', (req, res) => pessoaController.getAll(req,res));

module.exports = router; 

PessoaController

const {Router} = require('express');
const PessoaController = require('../controllers/PessoaController.js');

const pessoaController = new PessoaController();
const router = Router();

router.get('/pessoas', (req, res) => pessoaController.getAll(req,res));

module.exports = router; 
1 resposta

Bom dia

Esse erro no Postman geralmente acontece quando a requisição nunca recebe uma resposta, ou seja, o servidor fica “preso” processando algo e não finaliza o ciclo req → res.

catch vazio (principal causa do loop)

No seu Controller, se ocorrer qualquer erro dentro do try, o código cai no catch, mas você não retorna nenhuma resposta:

catch (error) {
  //
}

Resultado: o Express fica esperando uma resposta que nunca vem → Postman fica carregando → socket hang up.

O mínimo recomendado é algo assim:

catch (error) {
  return res.status(500).json({ error: error.message });
}

Só isso já deve acabar com o loop.

Controller genérico sendo usado sem o service

Seu Controller espera receber um entidadeService no construtor:

constructor (entidadeService) {
  this.entidadeService = entidadeService;   
}

Mas na rota você está fazendo:

const pessoaController = new PessoaController();

Ou seja, entidadeService está undefined.
Quando executa:

this.entidadeService.getAllRegisters();

isso gera erro e como o catch está vazio, a requisição trava.

O correto seria algo do tipo (exemplo):

const PessoaService = require('../services/PessoaService');
const pessoaService = new PessoaService();

const pessoaController = new PessoaController(pessoaService);

Arquivo PessoaController está duplicado

Você colou isso como PessoaController, mas ele é idêntico ao arquivo de rotas:

const {Router} = require('express');
const PessoaController = require('../controllers/PessoaController.js');

const pessoaController = new PessoaController();
const router = Router();

router.get('/pessoas', (req, res) => pessoaController.getAll(req,res));

module.exports = router; 

Aqui acontece um loop de importação:

  • PessoaController importa ele mesmo
  • nunca chega na classe real do controller

Esse arquivo não é um controller, é uma rota.
O PessoaController de verdade deveria ser uma classe, algo como:

const Controller = require('./Controller');

class PessoaController extends Controller {
  constructor(service) {
    super(service);
  }
}

module.exports = PessoaController;

Você precisa:

  • Tratar o erro no catch (obrigatório)

  • Passar corretamente o service para o controller

  • Separar claramente:

    • Controller (classe)
    • Route (Router do Express)
  • Evitar arquivos que importam a si mesmos

Arrumando esses pontos, o GET /pessoas no Postman deve responder normalmente.

Se quiser, pode mandar:

  • o PessoaService
  • a estrutura de pastas (controllers, routes, services)