私は、ランダムに生成された質問の間に正しい答えを見つけなければならないWebアプリケーションでAngularJSとNodeJSを使っています。 クライアントからの回答を "保護"する方法がわかりません。NodeJSでオブジェクトサーバー側を保護/格納する方法は?
質問/回答はそのようなオブジェクトで生成されます。この例では
var question = {
answer: 'A',
choices: ['A', 'B']
};
、ユーザーが間とBを選択しなければならないと正解はです。
私はそのような何かをしたいと思います:
- クライアントは、サーバが質問/回答をロードし、の選択肢を返すのみクライアントに新しい質問
- のためのサーバーを頼む
- クライアントはサーバーに応答を送信します
- サーバーは、クライアントから送信された回答をの回答と比較し、その結果をクライアントに返しますNG)
質問/回答はランダムに生成されているので、答えは私のようなものを考えていたステップ1
後にサーバで定義する必要があります:
var answer = 0;
app.get('/generateQuestion', function (req, res) {
var question = getQuestion();
answer = question.answer
res.send(question.choices);
});
app.post('/answer', function (req, res) {
if (req.answer === answer) {
res.send('Correct');
} else {
res.send('Wrong');
}
});
しかし、この保存された回答は、競合を引き起こすユーザー間で共有されます...
私は質問が尋ねられたときにクライアントに回答を送信しないようにしたいと思いますが、サーバー側に "保存"する方法はわかりません。
どうやって対応しますか?この質問/回答を少し安全にするにはどうすればいいですか?
これは本当にあまりにも一般的な質問ですが、一般的に、あなたはそのユニークなIDと一緒にブラウザに可能な答えを送信したいですサーバーからの実際の回答を要求するために使用されます。これを行う通常の方法は、ブラウザからサーバーへのリクエスト(ページを更新する必要はありません)とデータベースの一部に[AJAX](https://en.wikipedia.org/wiki/Ajax_(プログラミング))を使用することです可能な回答、および一意のIDで索引付けされた実際の回答を保存することができます。 –
@RobRaischありがとうRob。私はそれに言及しなかったが、質問/回答をデータベースに格納することはできない(もっと簡単になるだろう...)。私は第三者のAPIから無作為に生成します。彼らは一度しか使われないので、私はそれらを保存したくない。しかし、私はそれらを一時的にJSONファイルに保存し、 "クイズ"の後に削除する必要があります。 – Alex