私は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