A solução dada pelo professor para corrigir a rota de autores com a paginação foi para simplesmente remover o populate da função de paginação. Porém, se aplicarmos essa solução e tentarmos buscar livros novamente, o autor não é populado.
O correto não seria o professor ensinar uma condição ao invés de simplesmente mandar remover o populate?
Não sei se comi bola em algo, porém ficou um pouco sem sentido pra mim.
De forma rápida essa foi a solução que encontrei, mas seria interessante saber se existe alguma mais prática.
Tentei descobrir se a rota acessada era de livros, e apliquei uma condição:
const livrosReq = req.originalUrl.includes("livros");
if (limit > 0 && page > 0) {
let resultPaginated;
if (livrosReq) {
resultPaginated = await result.find()
.sort({ [fieldToOrder]: order, })
.skip((page - 1) * limit)
.limit(limit)
.populate("autor")
.populate("editora");
} else {
resultPaginated = await result.find()
.sort({ [fieldToOrder]: order, })
.skip((page - 1) * limit)
.limit(limit);
}
res.status(200).json(resultPaginated);
}
Professor, se possível, me de um norte com isso. Fora isso, a didática do curso está ótima! Achei bem explicativo. ;)