Coloquei o exato código que é fornecido na plataforma e jogou para o erro interno do servidor quando rodo a requisição GET: http://localhost:3000/livros e http://localhost:3000/livros?ordenacao=titulo:1
static listarLivros = async (req, res, next) => {
try {
let { limite = 5, pagina = 1, ordenacao = "_id:-1" } = req.query;
let [campoOrdenacao, ordem] = ordenacao.spli(":");
limite = parseInt(limite);
pagina = parseInt(pagina);
ordem = parseInt(ordem);
if (limite > 0 && pagina > 0) {
const livrosResultado = await livros
.find()
.sort({ [campoOrdenacao]: ordem }) //ordem crescente
.skip((pagina - 1) * limite) //pula 5 livros cada pagina
.limit(limite)
.populate("autor")
.exec();
res.status(200).json(livrosResultado);
} else {
next(new RequisicaoIncorreta());
}
} catch (erro) {
next(erro);
}
};
Assim está o meu manipuladorDeErros.js:
function manipuladorDeErros(erro, req, res, next) {
console.log(erro);
//dado que mongoose nao estava esperando
if (erro instanceof mongoose.Error.CastError) {
new RequisicaoIncorreta().enviarResposta(res);
} else if (erro instanceof mongoose.Error.ValidationError) {
new ErroValidacao(erro).enviarResposta(res);
} else if (erro instanceof ErroBase) {
erro.enviarResposta(res);
} else {
new ErroBase().enviarResposta(res);
}
}
Mensagem de erro: { "mensagem": "Erro interno do servidor.", "status": 500 }