【发布时间】:2018-07-30 18:11:39
【问题描述】:
所以我知道我当前的 ID 在我的数据库中,但 findOne 没有点击它。当我控制台日志req.params.video_id 它显示正确的ID。我该如何开始调试呢?我通过 MLAB UI 验证了视频在我的数据库中。
VideoSchema 片段
video: {
type: Schema.Types.ObjectId,
ref: "users"
}
API 路由
Video.findOne({ video: req.params.video_id })
.then(video => {
res.json(video);
})
.catch(err => {
res.status(404).json({ video: "Video doesn't exist" });
});
【问题讨论】:
-
我要做的第一件事是确保连接到正确的数据库。你能正确运行任何查询并从数据库中取回任何东西吗?您可以运行 .find() 并返回您要查找的内容吗?
-
所以,如果我这样做
Video.find({ video: req.params.video_id }) .then(video => { console.log({ video }); }) .catch(err => console.log(err));。它返回一个空数组 -
如果您在没有查询的情况下执行 .find 会怎样? IE。 。寻找({})。你仍然得到一个空数组吗?如果是这样,您没有正确连接到数据库。如果您确实得到了您所期望的记录,您可以发布有问题的对象吗?
-
试试这个:mongoose.set('debug', true);它将在控制台上记录一个查询,您会发现实际问题是什么
标签: javascript node.js mongodb mongoose mongoose-schema