我正在实现一个搜索栏,前端工作,我也实现了后端,我正在渲染页面,但我没有看到任何结果:
后端代码:
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, 活动:是的, 标签:'search', name:{'$ regex':'。 Tom。','$ options':'i'}}
我没有收到任何错误消息 - 即使我的页面上有一个名为Tom的产品,我在搜索时只看到一个空白页面。
我无法弄清楚我做错了什么。我认为它可能是正则表达式,我尝试改变它但我仍然看到同样的问题。有什么想法吗?
答案 0 :(得分:0)
您的正则表达式完全不需要.*
。只需要“汤姆”。
另一个注意事项:你的正则表达式中没有星星打印:.Tom.
。但是,点字符与新行不匹配可能是个问题。