我正在尝试将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' } }
模块中的查询时,它可以正常工作。有什么建议吗?
答案 0 :(得分:0)
我找到了解决方案:
替换:
{ name: { '$regex': req.body.name, '$options': 'i' } }
with:{ name: new RegExp(req.body.name, 'i') }
,
变量req.body.name
成功传递。