Por favor, ayúdame. Estoy haciendo una función de búsqueda. A continuación se muestra Mi código e Historias de usuario. Solo puedo pasar la primera historia de usuario, pero no con las otras historias. Puede alguien ayudarme.
Historias de usuarios:
Como usuario, si busco con Habilidades y ubicación, debería obtener los resultados que coincidieron con la consulta.
Como usuario, si busco solo con Habilidades, debo obtener los resultados que coincidieron con la consulta.
Como usuario, si busco solo con la ubicación, debo obtener los resultados que coincidieron con la consulta.
Como usuario, si busco con habilidades no válidas (J, A, B) o ubicación, no debería obtener los resultados que coinciden con la consulta.
var search = { get: function (req, res) { var locationQuery = req.params.locationQuery, skillsQuery = req.params.skillsQuery; Jobs.find({state: { "$regex": locationQuery, "$options": "i" }, Skills: { "$regex": skillsQuery, "$options": "i" }}, function(err, result) { if (err) { console.log('Not a Valid Search'); res.status(500).send(err, 'Not a Valid Search'); }else { res.json(result); } }); } };Para este tipo de soporte opcional, sería mejor tomar los parámetros de búsqueda como consulta en GET. Puede tomar como referencia el siguiente fragmento de código.
var search = { get: function (req, res) { var query = {}; if(req.query.locationQuery){ query.state = { "$regex": req.query.locationQuery, "$options": "i" }; } if(req.query.skillsQuery){ query.Skills = { "$regex": req.query.skillsQuery, "$options": "i" } } Jobs.find(query, function(err, result) { if (err) { console.log('Not a Valid Search'); res.status(500).send(err, 'Not a Valid Search'); }else { res.json(result); } }); } };Actualización:
Defina su ruta como: searchRoute.get('/', search.get);
Y puede enviar sus parámetros de consulta como (a través de POSTMAN):
localhost:3000/api/search/?skillsQuery="java,javascript"&locationQuery="Mumbai