我有一个带有查询字符串的URL,如下所示: http://localhost:3000/books?title=Java
在我的Express GET方法中,我试图生成一个
使用query-string(title=Java here)
过滤查询对象,如下所示
app.get('/', function (req, res, next) {
for (var prop in req.query) {
if (req.query.hasOwnProperty(prop)) {
var filterObject = {};
if (req.query.title != "") {
filterObject["title"] = req.query.title;
}
const query = Book.find(filterObject);
query.exec(function (err, someValue) {
if (err) return next(err);
res.send(someValue);
});
}
}
})
替换时的场景:const query = Book.find(filterObject);
i)const query = Book.find({"title":"Java"})
,效果很好
ii)const query = Book.find(filterObject)
,返回空数组
iii)const query = Book.find(JSON.stringify(filterObject))
,抛出
ObjectParameterError error
我正在使用的Mongoose版本是^5.3.1
。