Olá,
Estou implementando a função obtemContato do controller (app/controllers/contato.js) e nos testes quando passado um ObjectID existente na collection, o json de retorno é devolvido corretamente, porém ao passar o um ObjectID não existente, aparentemente não está sendo lançado o erro e a página fica executando…
Função original:
controller.obtemContato = function(req,res){
var _id = req.params.id;
Contato.findById(_id).exec()
.then(
function(contato){
if(!contato) throw new Error("Contato não encontrado");
res.json(contato);
},
function(erro){
console.log(erro);
res.status(404).json(erro);
}
);
};
Consegui fazer o código funcionar com o comportamento esperado alterando a função para:
controller.obtemContato = function(req,res){
var _id = req.params.id;
Contato.findById(_id).exec()
.then(
function(contato){
if(!contato) {
res.status(404).json("Contato não encontrado.");
} else {
res.json(contato);
}
},
function(erro){
console.log(erro);
res.status(404).json(erro);
}
);
};
Dessa maneira, fiquei com dois pontos do código retornando o 404.
Testei também com o código do gihub do cap-07 (https://github.com/flaviohenriquealmeida/mean-livro-codigo/tree/master/cap-07) mas o erro é o mesmo.
Alguém passou pela mesma situação?
Abraços!