【发布时间】:2017-07-28 07:06:26
【问题描述】:
我正在学习编码,并且一直在使用 Mongo、Express 和 NodeJS 构建一个问答游戏。我已经设法构建了一个游戏,它从数据库中提取一个随机的琐事问题,获取用户的答案,然后检查它是否正确。
现在游戏一直在继续,直到用户退出并且经常重复问题。为了阻止这种情况,我想从数据库中随机抽取 10 个问题,以便循环遍历这些问题。
到目前为止,我所做的是创建一个从数据库中获取随机问题的函数,检查它是否已经在数组中,如果不是,则将其推送到数组中。但我似乎无法访问数组中的问题。当我在浏览器中打开路线时,我只看到一个空数组。
我一直盯着这个看太久了,而且搞砸了太多,以至于我确信我已经偏离了轨道。
这是我的代码:
router.get("/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;
}
【问题讨论】: