javascript - 如何使用给定 ID 进行快速重定向?

标签 javascript node.js mongodb express ejs

此代码使我的应用程序从我的 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 });
  }
});

我有一个名为 play.ejs 的 ejs 模板,它使用随机选择的文档成功呈现该文件。

但我希望它每次都有一个像/play/"idOfRandomChosenDocument"这样的 URL,而不是/random。我该怎么做呢? 我是否需要创建 router.get("/play/:postid") ,如果需要,如何传入随机文档的 id 并成功加载正确的文档对象?

最佳答案

你的代码应该是这样的。

   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 });
  }
});

关于javascript - 如何使用给定 ID 进行快速重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60140341/

相关文章:

javascript - 如何使这个 Javascript 不仅仅适用于页面上第一个元素?

json - npm unexpected token/in config.json at position 98

windows - 在 Windows 7 和 Ubuntu 上使用相同的 mongodb 数据库

python - pymongo按日期排序

javascript - 自定义弹出窗口

javascript - 防止输入字段显示与正则表达式不匹配的字符

javascript - Highcharts - 对 Angular 线 X/Y 轴

javascript - MongoDB:单个数据库处理程序的 >5 个打开连接

node.js - AWS SDK 与 DynamoDB 和 putItem 相关的问题

c++ - 使用 mongodb 构建一个 c++ 项目