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