Json 查询数据库中未知数量的参数
这是一个简单的快速路由器,我想给它一个查询参数,并在数据库中搜索它们 因此,如果URL是这样的Json 查询数据库中未知数量的参数,json,mongodb,express,object,Json,Mongodb,Express,Object,这是一个简单的快速路由器,我想给它一个查询参数,并在数据库中搜索它们 因此,如果URL是这样的api?x=value1应用程序应该查询数据库中的{x:value1} 如果URL是api?x=value1&y=value2应用程序应该查询数据库中的{x:value1,y:value2} 因为我事先不知道参数的数量,所以我创建了一个空对象,并在它后面附加了参数(如果存在) 如果没有参数,我想检索数据库中的所有文档 .get(function (req, res){ let upda
api?x=value1
应用程序应该查询数据库中的{x:value1}
如果URL是api?x=value1&y=value2
应用程序应该查询数据库中的{x:value1,y:value2}
因为我事先不知道参数的数量,所以我创建了一个空对象,并在它后面附加了参数(如果存在)
如果没有参数,我想检索数据库中的所有文档
.get(function (req, res){
let update_issue= {}; /*empty object*/
if(req.query.issue_title){update_issue["issue_title"] = req.query.issue_title}
if(req.query.issue_text){update_issue["issue_text"] = req.query.issue_text}
if(req.query.created_by){ update_issue["created_by"] = req.query.created_by }
/*append object if param exists*/
if(Object.keys(update_issue).length !== 0 ){ /*check if that object is not empty*/
db.collection('issues').find(update_issue, (err, data)=>{
res.json(data);
})
}
db.collection('issues').find().toArray((err, data)=>{
res.send(data);
})
这个解决方案一直给我类型错误:将循环结构转换为JSON
我知道该对象的格式是{x:“value”}
,它应该是JSON对象,就像这样{x:“value”}
我尝试了扁平化,JSON字符串化,但仍然存在同样的问题
你能给我一个这个问题的解决方案,或者一个继续工作的替代方法吗。我已经使用名为Api查询参数的节点包解决了这个问题 这是我的密码:
var aqp = require('api-query-params');
.get(function (req, res){
let update_issue= aqp(req.query);
if(Object.keys(update_issue).length !== 0 ){ /*check if that object is not empty*/
db.collection('issues').find(update_issue, (err, data)=>{
res.json(data);
})
}
db.collection('issues').find().toArray((err, data)=>{
res.send(data);
})
以下是软件包:您可以执行console.log(JSON.stringify(data))
并查看它有什么功能吗?另外,发布问题
收集的示例输入文档。