Как мне перенаправить в express с заданным идентификатором? - PullRequest
1 голос
/ 09 февраля 2020

Этот код заставляет мое приложение выбирать случайный документ из моего mongoDB

router.get("/random", (req, res) => {
  try {
    postModel.countDocuments().exec(function(err, count) {
      var random = Math.floor(Math.random() * count);
      postModel
        .findOne()
        .skip(random)
        .exec(function(err, randomPost) {
          console.log(randomPost);
          res.render("play", { randomPost });
        });
    });
  } catch (err) {
    res.json({ msg: err });
  }
});

У меня есть шаблон e js, который называется play.e js, и он успешно отображает файл с помощью произвольно выбранный документ.

Но я хочу, чтобы у него был URL вроде / play / "idOfRandomChosenDocument" вместо / random каждый раз. Как мне это сделать? Нужно ли создавать router.get("/play/:postid") и, если да, как передать идентификатор случайного документа и его успешную загрузку с нужными объектами документа?

1 Ответ

0 голосов
/ 10 февраля 2020

Ваш код должен быть таким.

   router.get("/play/:postid", (req, res) => {
  try {
    postModel.countDocuments({_id:req.params.postid}).exec(function(err, count) {
      var random = Math.floor(Math.random() * count);
      postModel
        .findOne()
        .skip(random)
        .exec(function(err, randomPost) {
          console.log(randomPost);
          res.render("play", { randomPost });
        });
    });
  } catch (err) {
    res.json({ msg: err });
  }
});
...