[英]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.