尽管没有对象 ID,但使用 ObjectID 获得转换错误



我不断从这段代码中收到此错误,并且不知道为什么{"错误:强制转换错误:模型"订单"}的路径"_id"处的值

"已确认"的强制转换为对象ID 失败如您所见,我什至没有在此查询中使用对象ID...我不知道为什么它返回这个

router.get("/orders/confirmed", async (req, res) => {
try {
const confirmedOrders = await Order.find({ isConfirmed: false })
res.json(confirmedOrders)
} catch (err) {
res.status(400).json("Error: " + err)
}
})

添加我的评论作为答案,因为我 99% 确定就是这样。我去过那里...

在我看来,这条路线上面有一条路线更像是"/:模型/:ID"。它发现路线首先参数化。在代码中将该路由移到此路由下方。这样,如果使用其他单词\id,则此特定路由将首先匹配,然后另一个路由将匹配。

更一般的说明。始终对最具体的路由和最不具体的路由进行排序,以避免这种情况。您希望/really/specific/出现在/:something/:else 之前,因为 with 的处理程序匹配变量,如果它们的顺序错误......正如您在当前情况下所看到的那样。

req.params.something === "真的" req.params.else === "specific">

相关内容

最新更新