Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Bug] Quando faco GET passando um parametro retorna um array vazio

Ao fazer o seguinte GET:

http://localhost:3000/books/search?publisher=Editora

retorna um array vazio. Vale ressaltar que o modelo book, esta referenciando um publisher. Segue os codigos...

Modelo Book.js:

import mongoose from "mongoose";

const bookSchema = mongoose.Schema(
    {
        id: {type: String},
        title: {type: String, require: true},
        autor: {type: mongoose.Schema.Types.ObjectId, ref: 'autors', require: true},
        publisher: {type: mongoose.Schema.Types.ObjectId, ref: 'publishers', require: true},
        pagesNumber: {type: Number}
    }
);

const books = mongoose.model('books', bookSchema);

export default books;

Segue o model Publisher.js:

import mongoose from "mongoose";

const publisherSchema = new mongoose.Schema(
    {
        id: {type: String},
        company: {type: String, require: true},
        adress: {type: String}
    }
);

const publishers = mongoose.model("publishers", publisherSchema);

export default publishers;

Segue o controllerBook.js:

(...)
static bookListByPublisher = (req, res) => {
        const publisher = req.query.publisher;

        books.find({'publisher.company': publisher}, {}, (err, books) => {
            if (err) {
                res.status(400).send(`${err.message} - Couldnt list books by publisher`);
            } else {
                res.status(200).json(books);
            }
        })
    }
(...)

O resto do codigo funciona bem, faco todo o CRUD e funciona, somente quando faco o metodo GET e uso bookListByPublisher, me retorna um array vazio.

E uma duvida, quando possuo um parametro com espaco (ex: {"publisher": "Casa do codigo"}), como referencio na URL?

3 respostas
solução!

Oi Gabriel,

Pq usou publisher.company? Não seria apenas publisher?

E buscando a editora por um nome composto retornou resultados aqui

Tem razao, eu vi em algum lugar na inetrnet que deveria usar essa syntax, mas pelo jeito nao podemos confiar em tudo que lemos na internet hahahahahahaha

kkkkk... show então

Acontece da nossa vista ficar cansada mesmo, pra isso a revisão por outra pessoa é importante Valeu o/