ExpressとMongoDBでNode.jsを使用しています。ページが読み込まれた後に計算されるMongoDBへのデータの送信方法?
私は前のページで取られたクイズからユーザーのスコアを計算する'/score'
というページを持っています。 '/score'
ルートは以下の通りです:
app.get('/score', stormpath.getUser, function(req, res) {
var quiz = req.session.mostRecentQuiz;
db.collection('quizzes').find(quiz).toArray(function (err, docs) {
assert.equal(err, null);
var quiz;
docs.forEach(function (doc) {
quiz = doc.quiz;
});
res.render('score', {quiz: quiz});
});
db.collection('users').update({user: req.user.username}, { $set: {"mostRecentQuiz": quiz } }, function (err, result) {
if (err) throw err;
console.log(result);
});
});
DBからクイズの答えを取得した後、私は、ユーザーのスコアを計算し、ユーザーにそれを報告する/楽譜のページにいくつかのクライアント側のJavaScriptを使用しています。しかし、同じスコアを私のMongoDBに戻したいのですが、それをどのように達成するのが最善かどうかはわかりません。
これを達成するためにAJAXを使用することはできますか、新しいページにリダイレクトする方がよいでしょうか?
スコア計算をサーバー側で行うことができる場合は、それをデータベースに保存してから、あらかじめ計算したスコアをフロントエンドに戻します。 1つのリクエストで、これすべて。 –
フロントエンドで実際に計算を行う必要がある場合は、効果的にajaxを使用して別のURLにデータを返すことができます。 –