我使用mongoose和Node.Js来公开我的web服务。 当客户端发送无效对象ID时,我收到错误
message: 'Cast to ObjectId failed for value "333333707333371ssss" at path "_id" for model "student"',
我有很多模型,我使用.find
并处理各处尝试捕获;它是正确的解决方案吗?
在整个应用程序中处理这个问题的优雅方法是什么?我想回复一个空响应,因为该对象id与任何东西都不对应......
如何处理此错误?
答案 0 :(得分:0)
Mongoose在转换此ObjectId时会失败,因为它不是有效的。在调用.find
方法之前,您应该使用mongoose验证器mongoose.Types.ObjectId.isValid(id)
进行检查。请注意,当您检查控制器内的验证时,这有点“hacky”。否则,您可以在回调中捕获错误并做出相应的响应。