繁体   English   中英

用mongo.db和javascript过滤

[英]Filter with mongo.db and javascript

我正在实现一个搜索栏,在前端工作,并且还实现了后端,并且正在渲染页面,但看不到任何结果:

后端代码:

  var search = req.query.search;
  var query = { deleted: false, active: true };

  if (search) {
    var searchQuery = ".*" + search + ".*";
    _.extend(query, { name: { $regex: searchQuery, $options: 'i' } });
  }

  console.log(query);

  Product.find(query, function(err, products) {
    res.render('discover', {
      title: 'Discover',
      products: products,
      category: category,
      search: search
    });
  });
};

这是我的路线:

  app.get('/discover/search', discover.discover);

这是我前端的代码:

div.row
  div.col-lg-6
  div.col-lg-6(style='text-align: right;')
    div.col-sm-6
      form(action="/discover/search")
        .input-group
          input.form-control(type="text" name="search" placeholder="Search" value=search)
          span.input-group-btn
            button.btn.btn-primary(type='submit' style='border-right: 0px;') Go!

我正在做一个控制台日志,这就是我看到的内容:

{已删除:false,有效:true,标记:'搜索',名称:{'$ regex':'。 汤姆 ','$ options':'i'}}

我没有收到任何错误消息-即使我的页面上有一个名为Tom的产品,我在搜索时也只会看到一个空白页面。

我不知道我在做什么错。 我以为可能是正则表达式,所以尝试更改它,但仍然遇到相同的问题。 有什么想法吗?

您的正则表达式根本不需要.* 仅需要“ Tom”。

另一个注意事项:正则表达式中没有星星,它打印: .Tom. 但是,点字符仍不能与新行匹配,这可能是一个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM