Boa tarde!
Ao tentar recuperar uma foto que não existe, utilizando por exemplo o id 1 (http://localhost:3000/v1/fotos/1), a aplicação retorna o http code 500. Conforme a explicação do curso esse é o comportamento esperado, pois no código abaixo, ao não encontrar uma foto a variável terá conteúdo undefined e portanto será acionada a função de erro.
api.buscaPorId = function(req, res) {
model.findById(req.params.id)
.then(function(foto) {
if (!foto) throw new Error('Foto não encontrada');
res.json(foto);
}, function(error) {
console.log(error);
res.sendStatus(500);
});
};
A aplicação Angular está tratando isso pois quando acesso http://localhost:3000/#/fotos/edit/1 é retornada uma mensagem tratada: Não foi possível obter a foto.
Do ponto de vista da aplicação pode ser interessante diferenciar estes erros (registro não encontrado / erro interno do servidor) para retornar mensagens diferentes ao usuário final.
É possível fazer esse tratamento? Digo, quando o registro não for encontrado retornar um http code 200 com uma mensagem informando que nenhum registro foi encontrado.
Obrigado!
Tiago