From 17829b4bd33ec44d8ffe53c24a31e18b4884010a Mon Sep 17 00:00:00 2001 From: terakilobyte Date: Thu, 21 May 2015 00:08:12 -0400 Subject: [PATCH] reduce user saves, provide callbacks. --- controllers/challenge.js | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/controllers/challenge.js b/controllers/challenge.js index 6cff3c4419..0510b7be9a 100644 --- a/controllers/challenge.js +++ b/controllers/challenge.js @@ -109,19 +109,27 @@ exports.returnCurrentChallenge = function(req, res, next) { return elem; } }); - req.user.save(); if (!req.user.currentChallenge) { req.user.currentChallenge = {}; req.user.currentChallenge.challengeId = challengeMapWithIds['0'][0]; req.user.currentChallenge.challengeName = challengeMapWithNames['0'][0]; req.user.currentChallenge.challengeBlock = '0'; - req.user.save(); - return res.redirect('../challenges/learn-how-free-code-camp-works'); + req.user.save(function(err) { + if (err) { + return next(err); + } + return res.redirect('../challenges/learn-how-free-code-camp-works'); + }); } var nameString = req.user.currentChallenge.challengeName.trim() .toLowerCase() .replace(/\s/g, '-'); - return res.redirect('../challenges/' + nameString); + req.user.save(function(err) { + if (err) { + return next(err); + } + return res.redirect('../challenges/' + nameString); + }); }; exports.returnIndividualChallenge = function(req, res, next) { @@ -163,7 +171,6 @@ exports.returnIndividualChallenge = function(req, res, next) { )) }; } - req.user.save(); var challengeType = { 0: function() { @@ -269,9 +276,12 @@ exports.returnIndividualChallenge = function(req, res, next) { }); } }; - - return challengeType[challenge.challengeType](); - + req.user.save(function(err) { + if (err) { + return next(err); + } + return challengeType[challenge.challengeType](); + }); }); };