Метод "findById" не работает, хотя я предоставляю правильный Object Id - PullRequest
0 голосов
/ 04 апреля 2020

Я отправляю запрос PUT на мой локальный хост

http://localhost:3000/vidly.com/api/genres/5e87a056ee45fc0b300569c8

Мой код для обработчика маршрута PUT: -

router.put("/:id", async (req, res) => {
  const result = genreValidation(req.body);

  if (result.error) {
    return res.status(400).send(result.error.details[0].message);
  }

  console.log(req.params.id);
  const genre = await Genres.findById(req.param.id);
  console.log(genre);
  if (!genre)
    return res.status(404).send(`Bro, we dont have any genre of such Id..`);

 genre.set({
    genreName: req.body.genreName,
  });
  await genre.save();
  console.log(genre);
  return res.send(genre);
});

Я использовал findByIdAndUpdate (), findOne ( ), но во всех случаях мой запрос PUT не работает, а константа жанра всегда равна NULL!

1 Ответ

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

I wi sh Я мог бы просто прокомментировать это, но мне не хватает репутации:

Вы уверены, что использование req.param.id является правильным, по сравнению с req.params.id с 's' на конец "парам"? Вы используете множественное число в console.log выше, но не в findById методе

  //this is correct
  console.log(req.params.id);
  //I don't think this is without the 's'
  const genre = await Genres.findById(req.param.id);
...