2017-01-31 4 views
0

Я пытаюсь передать запрос Mongoose в качестве параметра другой функции. По какой-то причине переменные, которые я отправляю как часть запроса, не передаются вместе. Это мой код:Передача значений paramater в запросе 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

@ nem035 Да, извините, я что-то пытался и забыл удалить. Исправлена ​​опечатка. – SalmaFG

+0

Что касается вашей проблемы, вы говорите, что 'User.find ({name: {'$ regex': NaN, '$ options': 'i'}})' работает, но 'User.find (my_query)' , где 'my_query' передается как' {name: {'$ regex': NaN, '$ options': 'i'}} 'не работает? – nem035

+0

@ nem035 Да, точно. – SalmaFG

ответ

0

Я нашел решение:

Заменяя: { name: { '$regex': req.body.name, '$options': 'i' } }

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

переменная req.body.name успешно прошла.

 Смежные вопросы

  • Нет связанных вопросов^_^