我正在学习编写代码并使用Mongo,Express和NodeJS构建了一个琐事游戏。我设法构建了一个游戏,从数据库中抽取一个随机的琐事问题,获取用户的答案,并检查它是否正确。返回mongo数据库中的一个随机子集
现在游戏一直持续到用户退出并且问题经常重复。为了阻止这一点,我想从数据库中随机抽取10个问题,这样我就可以循环这些问题。
我到目前为止所做的是创建一个函数,从数据库中抓取一个随机问题,检查它是否已经存在于数组中,如果不存在,则将其推送到数组。但我似乎无法访问阵列中的问题。当我在浏览器中打开路由时,我只看到一个空数组。
我一直在盯着这么长时间,并且非常混乱,以至于我相信我已经走上了正轨。
这里是我的代码:
router.get("https://stackoverflow.com/q/", function(req,res){
res.send(getQuestions());
});
function getQuestions() {
var quiz = new Array();
for(var i = 0; i < 10; i++) {
Question.findOneRandom(function(err, randomQuestion){
if(err){
console.log(err);
} else {
if(!containsObject(randomQuestion, quiz)) {
console.log("Adding question");
quiz.push(randomQuestion);
} else {
console.log("It was a duplicate.");
}
}
});
}
return quiz;
}
function containsObject(obj, list){
for (var i = 0; i < list.length; i++){
if (list[i].question === obj.question) {
return true;
}
}
return false;
}
谢谢 - 这个作品。我想我需要更多地阅读以了解到底发生了什么,但感谢您的帮助! – djdrysdale