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

标签 node.js angularjs mongodb mean-stack

我正在使用这个 Controller 来使用我的服务然后调用我的 router.get,我想在从 mongodb 获取请求时使用 userObject.blood_component 作为 searchFinder

Controller :

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

最佳答案

您不能在 GET 请求中发送数据,您必须将其作为查询字符串或查询参数在 URL 中传递。

您必须进行以下更改

Controller

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

服务

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

现在在 API 中,您可以使用 req.query.search 获取搜索字符串

关于node.js - 使用对象作为在 router.get 中查找值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55169222/

相关文章:

node.js - 如何从特定文件夹运行 Jest 测试而忽略其他文件夹测试?

javascript - 使用 ng-repeat 和条件语句填充表格

java - RestFul java with mongodb 如何添加@QueryParam

MongoDB 让 $lookup 只返回一条记录

node.js - 如何将 fetch 转换为 axios

node.js - Mocha JS : How to share assertion/"it(' should')"code between tests

javascript - 如何使用 node.js 将格式化查询传递给 mongodb 中的 findOne()

angularjs - 预检响应具有无效的 HTTP 状态代码 403

http - 如何将响应数据放入 AngularJS 中的全局范围数组中?

javascript - 从 mongoDB 读取 PDF 并以 HTML 显示