Open gabsprates opened 7 years ago
Não acho que seja algo difícil de discutir
exception-handler.js
que exporte um middleware que será responsável por receber os erros (no caso, seguindo o padrão connect, seria o último middleware da nossa aplicação).Error
sem nenhuma propriedade a mais, chama uma função geral, se o middleware receber um err instanceof AuthError
, chama uma função de erro de autenticação.data
com o conteúdo da resposta e opcionalmente um meta
para informar links de paginação, ou a quantidade de requisições restantes dentro do limite; e se a resposta não foi favorável ele retorna um campo error
, com o conteúdo da mensagem de erro. Vale lembrar que essa assinatura da resposta está associado a quem vocês vão permitir que utilizem a API. Ou seja, se for apenas nossas aplicações, não seria uma prática ruim deixar a resposta livre, sem uma estrutura (desde que corretamente documentada), mas se você não se importa que outras pessoas utilizem nossa API nas aplicações deles, devemos sim padronizar as respostas, para impedir que atualizações na nossa API quebrem as aplicações clientes (independente se API possui sistemas como versionamento ou etc)A principal vantagem do exception-handler.js
(ou exceptions/handler.js
, ou whatever), é a definição de uma área da sua aplicação que trabalhe com erros. Se você precisar adicionar um erro ao mais, como por exemplo mensagens de erro que indiquem que algum serviço que utilizamos está fora do ar, basta ir nesse arquivo, criar uma função, e expandir o middleware. É mais prático do que lotar um middleware dentro do server.js
com essas condições.
@marcossffilho cara, lembrei de uma coisa aqui. Já temos o middleware de tratamento de erros. Só precisamos passar eles pelo next()
, vou fazer o teste e digo se deu certo.
Através da discussão do PR #5 percebemos que não foi implementado nenhum tratamento de erros em na maioria do programa, com exceção da parte de login.
No primeiro momento, acredito que é necessário tratar as rotas de uma maneira geral, daí todo erro lançado cairia no
catch
geral.O que acham melhor?