1
resposta

[Dúvida] Buscar livros por número de páginas

Eu escrevi o código abaixo, mas o postman retorna apenas "[]".

static listarLivroPorNumeroPaginas = (req, res) => {
        const numeroPaginas = req.query.numeroPaginas

        livros.find({'numeroPaginas': numeroPaginas}, {}, (err, livros) => {
            res.status(200).send(livros);
        })
    }

Saberiam dizer o que há de errado e como resolver?

1 resposta

Fala Lucas, tudo certo?

Acredito que o problema esteja na forma que vc está tentando usar o find.

considerando que livros seja um array de objetos vc precisaria usar da forma abaixo:

const livroLoalizado = livros.find(livro => livro.numeroPaginas === numeroPaginas)

sendo assim o JS vai buscar, dentro da tua array livros, considerando a propriedade numeroPaginas. desta forma vc retorna apenas 1 resultado e ele será um objeto.

para retornar vários, acredito que vc precisaria usar a função filter.

const livrosLocalizados = livros.filter(livro => livro.numeroPaginas === numeroPaginas)

assim vc retornar um array de objetos que contenham o resultado da sua condição ali dentro (===)

ao final vc pode retornar a variável para sua requisição http

return res.status(200).send(livroLoalizado)