如何执行搜索功能



请帮帮我。我正在制作搜索功能。下面是我的代码和用户故事。我只能传递第一个用户故事,而不能传递其他故事。有人可以帮我吗?

用户故事:

  1. 作为用户,如果我使用技能和位置进行搜索,我应该得到与查询匹配的结果。

  2. 作为用户,如果我只使用技能进行搜索,我应该得到与查询匹配的结果。

  3. 作为用户,如果我只使用位置进行搜索,我应该得到与查询匹配的结果。

  4. 作为用户,如果我使用无效技能(J,A,B(或位置进行搜索,我不应该获得与查询匹配的结果。

    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);
            }            
        });
     }
    };
    

对于这种可选支持,最好在 GET 中将搜索参数作为查询。您可以参考以下代码片段。

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);
        }            
    });
 }
};

乌帕特:

将您的路由定义为: searchRoute.get('/', search.get);

您可以将查询参数发送为(通过 POSTMAN(:

localhost:3000/api/search/?skillsQuery="java,javascript"&lo‌​cationQuery="Mumbai

相关内容

  • 没有找到相关文章

最新更新