Использование объекта в качестве ключа для поиска значений в router.get - PullRequest
2 голосов
/ 14 марта 2019

Я использую этот контроллер, чтобы использовать мой сервис, затем вызываю мой router.get, я хочу использовать userObject.blood_component в качестве searchFinder при получении запроса от контроллера mongodb

:

var userObject = {}; 
userObject.blood_component = "find me";
Bloodstock.getStocks(userObject).then(function(data) {});

Затем вызов маршрута API:

Сервис:

bloodstockFactory.getStocks = function(userObject) {
   return $http.get('/api/getStocks/', userObject);
};

api.js:

   router.get('/getStocks', function(req, res) {

        var newBloodneeded = req.body.blood_component; 
        console.log("the component is " + newBloodneeded ) //undefined
        Bloodstock.find({$and: [ { blood_component:newBloodneeded}]},function(err, bloodstocks) {    
        res.json({ success: true, bloodstocks: bloodstocks });

        });   
    });

Но когда дело доходит до API, оно не определено, что здесь не так

1 Ответ

1 голос
/ 14 марта 2019

Вы не можете отправить данные в запросе GET, вам нужно будет передать их в URL-адресе в виде строки запроса или параметра запроса.

Вам необходимо будет внести следующие изменения

Контроллер

Bloodstock.getStocks('find me').then(function(data) {});

Сервис

bloodstockFactory.getStocks = function(searchString) {
   return $http.get('/api/getStocks/?search=' + searchString, userObject);
};

Теперь в API вы можете получить строку поиска, используя req.query.search

...