我有一个错误,我不明白它是如何发生的。如果我的路线按以下顺序排列:
我的控制器obter_todos_precos只是一个console.log,未使用任何模型,但是出现以下错误:
"message": "Cast to ObjectId failed for value \"preco\" at path \"_id\" for
model \"ZonaModel\""
我已经找到了一种解决方案,方法是通过这种方式更改路由的顺序:
为什么我有这种行为?
答案 0 :(得分:2)
路由器匹配它匹配的第一条路由
/:id_zona和/ preco路由到与preco
相同的路径也可以是id_zona
的值
因此,当/ preco在上方时, 而当/:id_zona在上面,而您尝试使用/ preco时,路由会匹配到/:id_zona,并且id_zona的值是preco,在您的控制器中希望该值是ObjectId类型