Передача объекта в метод mongoose find () в проекте NODE - PullRequest
0 голосов
/ 06 октября 2018

У меня есть URL со строкой запроса, как показано: http://localhost:3000/books?title=Java

В моем методе Express GET я пытаюсь сгенерировать объект фильтра-запроса, используя query-string(title=Java here), как показано ниже

app.get('/', function (req, res, next) {
   for (var prop in req.query) {
        if (req.query.hasOwnProperty(prop)) {

            var filterObject = {};

            if (req.query.title != "") {
                filterObject["title"] = req.query.title;
            }

            const query = Book.find(filterObject);

            query.exec(function (err, someValue) {
                if (err) return next(err);
                res.send(someValue);
            });         
       }
   }
})

Сценарии при замене: const query = Book.find(filterObject);

i) const query = Book.find({"title":"Java"}), работает нормально

ii) const query = Book.find(filterObject), возвращает пустой массив

iii)const query = Book.find(JSON.stringify(filterObject)), бросает ObjectParameterError error

Я использую версию Mongoose: ^5.3.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...