gpt4 book ai didi

node.js - findById 返回文档列表而不是单个结果

转载 作者:可可西里 更新时间:2023-11-01 10:36:03 26 4
gpt4 key购买 nike

我正在尝试通过 mongodb 的对象 ID 获取项目对象,但是当我尝试在 postman 中调用该路由时,它会为我提供数据库中每个对象的列表(总共 4 个对象),而不是预期一个对象。

这是我为从数据库中获取一个对象而创建的函数

getEvent : function(id,callback)
{
EventModel.findById(id,callback);
},

下面是我的路线

router.get('/events/:id',function(req,res)
{
var id = req.params.id;
db.getEvent(id,function(err,event)
{
if(err)
{
console.log("Error processing data");
}
else{
console.log("get one event is called");
res.send(event)`enter code here`;
}
})
});

下面是结果

Postman Test Result

最佳答案

代码是正确的,你请求的方式是错误的

你的格式:

http://localhost:3000/events?id=someid
URL 中的

id = someID 代表一个 GET 查询参数。

如果您在路由中使用通配符参数,如 :id,则请求 URL 应为:

http://localhost:3000/events/someid

someid 现在将出现在 req.params.id

你得到所有对象是因为变量 id 在你的情况下是 undefined ,默认情况下省略未定义的参数。所以它与调用相同:EventModel.findById({}, 回调)

谢谢

关于node.js - findById 返回文档列表而不是单个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57307358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com