Express js Mongoose 替代 MySQL % 通配符
Express js Mongoose alternative to MySQL % Wildcard
我一直在阅读并尝试了一些其他人已成功使用的不同代码片段,但我似乎无法让它发挥作用。
我希望用户仅使用部分术语进行搜索,即 pe 搜索 'peter'。我想在搜索字词上使用通配符。
我的代码目前无法正常工作:
router.get('/:callsign', function(req,res){
var search = req.params.callsign;
var term = escape(search);
term = term.toUpperCase();
if(search=="*" || search==""){
res.redirect("/");
}
User.find({'callsign' : new RegExp('^'+term+'$', "i") }, function(err, callsign){
if(err)
{
console.log('No user found'+err);
req.flash('message','Sorry, something went wrong. Try again.');
res.render('callSearchResults'),{
message: req.flash('message'),
title: 'Sorry, no results'
}
}
if(callsign){
console.log('Callsign:'+callsign+term);
res.render('callSearchResults',{
call: callsign,
title: 'You searched for '+search,
query: term
});
}else{
console.log('No entries found'+search);
}
});
});
此外,'callsign' 回调始终为真 - 即使没有结果!
我一直在阅读并尝试了一些其他人已成功使用的不同代码片段,但我似乎无法让它发挥作用。
我希望用户仅使用部分术语进行搜索,即 pe 搜索 'peter'。我想在搜索字词上使用通配符。
我的代码目前无法正常工作:
router.get('/:callsign', function(req,res){
var search = req.params.callsign;
var term = escape(search);
term = term.toUpperCase();
if(search=="*" || search==""){
res.redirect("/");
}
User.find({'callsign' : new RegExp('^'+term+'$', "i") }, function(err, callsign){
if(err)
{
console.log('No user found'+err);
req.flash('message','Sorry, something went wrong. Try again.');
res.render('callSearchResults'),{
message: req.flash('message'),
title: 'Sorry, no results'
}
}
if(callsign){
console.log('Callsign:'+callsign+term);
res.render('callSearchResults',{
call: callsign,
title: 'You searched for '+search,
query: term
});
}else{
console.log('No entries found'+search);
}
});
});
此外,'callsign' 回调始终为真 - 即使没有结果!