在模型

时间:2018-12-16 18:15:11

标签: javascript node.js

我有一个错误,我不明白它是如何发生的。如果我的路线按以下顺序排列: enter image description here

我的控制器obter_todos_precos只是一个console.log,未使用任何模型,但是出现以下错误:

"message": "Cast to ObjectId failed for value \"preco\" at path \"_id\" for 
model \"ZonaModel\""

我已经找到了一种解决方案,方法是通过这种方式更改路由的顺序: enter image description here

为什么我有这种行为?

1 个答案:

答案 0 :(得分:2)

路由器匹配它匹配的第一条路由 /:id_zona和/ preco路由到与preco相同的路径也可以是id_zona的值

因此,当/ preco在上方时, 而当/:id_zona在上面,而您尝试使用/ preco时,路由会匹配到/:id_zona,并且id_zona的值是preco,在您的控制器中希望该值是ObjectId类型