1 回答
TA贡献2051条经验 获得超10个赞
我现在设法制定出一种解决方案。这绝不是完美的,仍然需要更多的工作和测试。
我最终model.js在NeDB中修改了文件,更具体地说是对该comparisonFunctions.$regex函数进行了修改。我添加了额外的检查,以查看传入的正则表达式是否可以从其字符串形式转换为正则表达式。model.js现在,该文件如下所示:
comparisonFunctions.$regex = function (a, b) {
if (!util.isRegExp(b)) {
try {
// convert the string based regex into an actual regular expression
b = new RegExp(b.replace(/[\\/]/g, ""), 'i');
// check again if it worked
if (!util.isRegExp(b))
throw new Error("$regex operator called with non regular expression");
} catch {
// we were not working with a regex
throw new Error("$regex operator called with non regular expression");
}
}
if (typeof a !== 'string') {
return false
} else {
return b.test(a);
}
};
现在,如果我将其传递给我的API:
{
"test": {
"$regex": "/ell/"
}
}
它将从数据库返回第一个文档,其中test字段==Hello
我们将非常感谢您提供有关如何整洁和/或反馈的任何建议。
添加回答
举报