在Mongoose查询中传递参数值

时间:2017-01-31 15:29:29

标签: javascript node.js mongoose

我正在尝试将Mongoose查询作为参数传递给另一个函数。出于某种原因,我作为查询的一部分发送的变量不会传递。这是我的代码:

get: function(req, res) {
  var my_query = {name: {$regex: req.body.name, $options: 'i'}};
  user.find(my_query, function(err, users) {
    if (err) return res.status(500).json({err});
    else return res.status(200).json({users});
  });
}

user.js:

find: function(my_query, next) {
  User.find(my_query).exec(function(err, users) {
    console.log(my_query); // prints { name: { '$regex': NaN, '$options': 'i' } }
    if (err) return next(err, null);
    else return next(null, users);
  });
}

运行此代码时,我得到一个空数组。当我使用user.js替换{ name: { '$regex': NaN, '$options': 'i' } }模块中的查询时,它可以正常工作。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

替换:  { name: { '$regex': req.body.name, '$options': 'i' } }

with:{ name: new RegExp(req.body.name, 'i') }

变量req.body.name成功传递。