当我的 node.js-application 中的以下代码执行时,我收到一条错误消息:
SyntaxError: Invalid regular expression: / ha /: Nothing to repeat at new RegExp() at Object.store.findSimilarSongs
app.js 片段:
app.get('/search', function (req, res, next) {
store.findSimilarSongs(req.query.search, function (err, songs) {
if (err) {
res.writeHead(500, "An Error occurred");
next(err);
}
else {
res.writeHead(200, {
'Content-Type': 'application/json'
});
res.write(JSON.stringify(songs));
searchQuery=[];
}
res.end();
});
});
我的 store.js 中的函数“findSimilarSongs”:
findSimilarSongs: function (query, callback) {
db.music.find({$or:[{'title': new RegExp("*"+query+"*", "i")},{'interpret': new RegExp("*"+query+"*", "i")}]}, callback);
}
我对正则表达式非常陌生,尤其是与 mongodb/mongoskin 结合使用。在错误发生之前,一切正常。错误消息中提到的ha正是我在搜索栏中输入的内容。
可悲的是,我没有选择使用任何其他方式执行此任务,但 javascript/jquery、node.js(modules:express, mongoskin) 和 mongodb。