使用对象作为在 router.get 中查找值的键

Using object as key for finding values in router.get

我正在使用这个控制器来使用我的服务,然后调用我的 router.get,我想在从 mongodb[=14 获取请求时使用 userObject.blood_component 作为 searchFinder =]

控制器:

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的时候,是未定义的,这里有什么问题

您不能在 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

获取搜索字符串