MongooseError [CastError]: сбой приведения к ObjectId для значения "{id: '5e9485557841553e6806b6e1'}" в пути "избранное" - PullRequest
0 голосов
/ 13 апреля 2020

я взял https://github.com/zarkomaslaric/yelpcamp-likes в качестве моей справки и попытался создать любимую систему кемпинга, в которой пользователь, если он предпочитает любой кемпинг, идентификатор объекта будет сохранен в пользовательской модели, вот что я попробовал https://www.filehosting.org/file/details/859839/yelpcamp-favorites-master.rar (некоторые вещи, такие как луна goose настроены в соответствии с более старыми версиями), ошибка, которую я получаю,

events.js:288
      throw er; // Unhandled 'error' event
      ^
MongooseError [CastError]: Cast to ObjectId failed for value "{ id: '5e9485557841553e6806b6e1' }" at path "favorites"
    at new CastError (c:\Users\ronni\Downloads\Compressed\yelpcamp-likes-master\yelpcamp-favorites-master\node_modules\mongoose\lib\error\cast.js:29:11)
    at ObjectId.cast (c:\Users\ronni\Downloads\Compressed\yelpcamp-likes-master\yelpcamp-favorites-master\node_modules\mongoose\lib\schema\objectid.js:232:11)
    at ObjectId.SchemaType.applySetters (c:\Users\ronni\Downloads\Compressed\yelpcamp-likes-master\yelpcamp-favorites-master\node_modules\mongoose\lib\schematype.js:845:12)
    at Array._cast (c:\Users\ronni\Downloads\Compressed\yelpcamp-likes-master\yelpcamp-favorites-master\node_modules\mongoose\lib\types\array.js:129:32)
    at Array._mapCast (c:\Users\ronni\Downloads\Compressed\yelpcamp-likes-master\yelpcamp-favorites-master\node_modules\mongoose\lib\types\array.js:308:17)
    at Arguments.map (<anonymous>)
    at Array.push (c:\Users\ronni\Downloads\Compressed\yelpcamp-likes-master\yelpcamp-favorites-master\node_modules\mongoose\lib\types\array.js:322:25)
    at c:\Users\ronni\Downloads\Compressed\yelpcamp-likes-master\yelpcamp-favorites-master\routes\campgrounds.js:84:28
    at c:\Users\ronni\Downloads\Compressed\yelpcamp-likes-master\yelpcamp-favorites-master\node_modules\mongoose\lib\model.js:4687:16
    at c:\Users\ronni\Downloads\Compressed\yelpcamp-likes-master\yelpcamp-favorites-master\node_modules\mongoose\lib\query.js:4095:12
    at c:\Users\ronni\Downloads\Compressed\yelpcamp-likes-master\yelpcamp-favorites-master\node_modules\mongoose\lib\query.js:2682:28
    at processTicksAndRejections (internal/process/task_queues.js:79:11)
Emitted 'error' event on Function instance at:
    at c:\Users\ronni\Downloads\Compressed\yelpcamp-likes-master\yelpcamp-favorites-master\node_modules\mongoose\lib\model.js:4689:13
    at c:\Users\ronni\Downloads\Compressed\yelpcamp-likes-master\yelpcamp-favorites-master\node_modules\mongoose\lib\query.js:4095:12
    at c:\Users\ronni\Downloads\Compressed\yelpcamp-likes-master\yelpcamp-favorites-master\node_modules\mongoose\lib\query.js:2682:28
    at processTicksAndRejections (internal/process/task_queues.js:79:11) {
  message: `Cast to ObjectId failed for value "{ id: '5e9485557841553e6806b6e1' }" at path "favorites"`,
  name: 'CastError',
  stringValue: `"{ id: '5e9485557841553e6806b6e1' }"`,
  kind: 'ObjectId',
  value: { id: '5e9485557841553e6806b6e1' },
  path: 'favorites',
  reason: undefined
}

1 Ответ

0 голосов
/ 13 апреля 2020

кажется, что избранное - это массив objectIds,

, и вы передали ему объект { id: '5e9485557841553e6806b6e1' }, в то время как он ожидает и принимает только objectIds

, который вам нужно передать _id непосредственно в массив избранного вместо передачи объекта { id: '5e9485557841553e6806b6e1' }

, просто передайте этот '5e9485557841553e6806b6e1' в массив favorites

вместо передачи этого "{ id: '5e9485557841553e6806b6e1' }"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...