Express + MongoDB - req.query to object

时间:2017-08-01 10:18:24

标签: javascript node.js mongodb express decode

我尝试从MongoDB过滤我的结果。我正在使用Express。这是我的console.logs:

    来自网址的
  1. req.query.filters:http://localhost:3000/test?filters=%7Bpersonalbest%3A%7B%27%24gt%27%3A%27170%27%7D%2Cname%3A%7B%27%24gt%27%3A%27M%27%7D%7D
  2. 由我制作的一个对象,用于测试是否适用于我的数据库并且
  3.   
        
    1. {personalbest:{ '$ GT': '170'},名称:{ '$ GT': 'M'}}
    2.   
    3. {personalbest:{'$ gt':'170'},姓名:{'$ gt':'M'}}
    4.   

    代码:

    var filters = req.query.filters
    db.collection('skijumper').find(filters).toArray()
    

    当然我收到了这个错误:

      

    MongoError:查询选择器必须是对象

    将此req.query转换为对象的最佳方法是什么? 感谢

1 个答案:

答案 0 :(得分:2)

前端:

var filters = {personalbest:{'$gt':'170'},name:{'$gt':'M'}};
var url = "http://localhost:3000/test?filters=" + encodeURIComponent(JSON.stringify(filters));

后端:

var filters = JSON.parse(req.query.filters);