Я получил undefined при проверке типа ошибки в mongodb - PullRequest
0 голосов
/ 17 июня 2020

Когда я ввожу действительный идентификатор после / user / как «http://localhost: 5000 / api / profile / user / 5ee9fbe0e82023146c8a5230 », он возвращает ожидаемый результат. Но мне нужно проверить тип ошибки, если ошибка возникает, когда пользователь дает недопустимый идентификатор. Поэтому я намеренно ввел недопустимый идентификатор как '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, но есть undefined. Что там не так.

1 Ответ

0 голосов
/ 17 июня 2020

Согласно документации свойство kind заполняется только для ValidatorError s.

В вашем случае вы получаете ошибку типа CastError, в свойствах которой нет kind: https://mongoosejs.com/docs/api.html#mongoose_Mongoose -CastError

Так что это кажется вроде работает как задумано.

...