javascript - 在 mongodb 检查错误类型时我得到了未定义
问题描述
当我在 /user/ 之后输入有效 ID 作为“ http://localhost:5000/api/profile/user/5ee9fbe0e82023146c8a5230 ”时,它会按预期返回结果。但是如果在用户提供无效 id 时发生错误,我需要检查错误类型。所以我故意输入了无效的 id 作为' http://localhost:5000/api/profile/user/5ee9fbe0e82023146c8a52304 '。现在它抛出错误为
MongooseError [CastError]: Cast to ObjectId failed for value "5ee9fbe0e82023146c8a52304" at path "user" for model "profile"
at new CastError (D:\Programming\MERN\devConnector\node_modules\mongoose\lib\error\cast.js:29:11)
at model.Query.exec (D:\Programming\MERN\devConnector\node_modules\mongoose\lib\query.js:4341:21)
at model.Query.Query.then (D:\Programming\MERN\devConnector\node_modules\mongoose\lib\query.js:4433:15)
at processTicksAndRejections (internal/process/task_queues.js:97:5) {
messageFormat: undefined,
stringValue: '"5ee9fbe0e82023146c8a52304"',
kind: undefined,
value: '5ee9fbe0e82023146c8a52304',
path: 'user',
reason: Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters
at new ObjectID (D:\Programming\MERN\devConnector\node_modules\bson\lib\bson\objectid.js:59:11)
at castObjectId (D:\Programming\MERN\devConnector\node_modules\mongoose\lib\cast\objectid.js:25:12)
at ObjectId.cast
}
现在我想检查 error.kind 但没有定义。那里有什么问题。
解决方案
根据文档,kind
-property 只为ValidatorError
s 填充。
CastError
在您的情况下,您会收到其属性中未kind
列出的类型错误: https ://mongoosejs.com/docs/api.html#mongoose_Mongoose-CastError
所以这似乎按预期工作。
推荐阅读
- css - CSS - 通过(下方)SVG 徽标图像添加细水平线
- python - 将可执行文件或依赖项与您的 python 程序捆绑在一起
- css - 如何使用 grid 属性操作多个 div 容器?
- javascript - React-Native secureTextEntry 在上面的 TextInput 和 TextInput 中创建输入滞后
- c# - EF Core Postgres 列表
.包含实体属性 - mitmproxy - 如何在 MITMPROXY 中动态更改操作模式
- html - 如何在伪元素之前分配具有数据属性的图标?
- pandas - 带有“系列的真值不明确”的熊猫数据框多条件错误
- azure - 部署 Web 应用程序时 Microsoft Azure 中可能存在的错误?
- r - 如何使用 r 函数 wtable 在加权表中显示零?