如何处理CastError:对值

时间:2017-04-06 20:13:10

标签: node.js exception mongoose node-modules

我使用mongoose和Node.Js来公开我的web服务。 当客户端发送无效对象ID时,我收到错误

  message: 'Cast to ObjectId failed for value "333333707333371ssss" at path "_id" for model "student"',

我有很多模型,我使用.find并处理各处尝试捕获;它是正确的解决方案吗? 在整个应用程序中处理这个问题的优雅方法是什么?我想回复一个空响应,因为该对象id与任何东西都不对应......

如何处理此错误?

1 个答案:

答案 0 :(得分:0)

Mongoose在转换此ObjectId时会失败,因为它不是有效的。在调用.find方法之前,您应该使用mongoose验证器mongoose.Types.ObjectId.isValid(id)进行检查。请注意,当您检查控制器内的验证时,这有点“hacky”。否则,您可以在回调中捕获错误并做出相应的响应。