Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Tratando página 404

Estou fazendo o curso Node.js: lidando com buscas, filtros, paginação e erros em uma API. Estou com dúvida no tópico Tratando página 404.

Eu não poderia instanciar a classe NaoEncontrado diretamente no livroController.js, para aparecer a mensagem de erro 404 direto?. Dessa forma ficaria assim:

static buscarPorId = async(req, res, next) => {
        try {
            const buscar = await autores.findById(req.params.id);
            if(buscar !== null) {
                res.status(200).json(buscar);
            } else {
                new NaoEncontrado().enviarResposta(res);
            }
        } catch(erro) {
            next(erro);
        };
    };
1 resposta
solução!

Sim, Gabriel, você pode instanciar a classe NaoEncontrado diretamente dentro do método buscarPorId para enviar a resposta de erro 404, como você sugeriu. No entanto, isso pode não ser a melhor abordagem dependendo de como você organiza o código da sua API e os padrões de arquitetura que segue.

Aqui estão algumas considerações:

Instanciação Direta:

Prós: O código fica direto e fácil de entender, já que a resposta de erro é enviada diretamente dentro do método. A solução funciona bem se a lógica de tratamento de erros for simples.

Contras: Caso você precise de tratamento de erro mais complexo ou centralizado, isso pode se tornar repetitivo, pois você teria que instanciar a classe NaoEncontrado em várias partes do código.

Uma abordagem melhor é centralizar o tratamento de erros em um middleware global. Isso evita duplicação de código e facilita a manutenção. Por exemplo, em vez de instanciar a classe NaoEncontrado dentro do método do controller, você pode fazer isso de forma mais genérica com um middleware de erros.