Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ReferenceError: error is not defined

ReferenceError: error is not defined in the code:

app.post('/register', function(req, res) {
  var hash = bcrypt.hashSync(req.body.password, bcrypt.genSaltSync(10));
  var user = new User({
    firstName: req.body.firstName,
    lastName: req.body.lastName,
    email: req.body.email,
    password: hash,
  });
  user.save(function(err) {
    if (err) {
      var err = 'Something bad happened, try again!';
      if(err.code === 11000) {
        error = 'That email is already taken, try another.';
      }
      res.render('register.jade', { error: error });
    } else {
      res.redirect('/dashboard');
    }
  });
});

Specifically the error is on this line I believe:

  res.render('register.jade', { error: error });

Can anyone tell me how to fix this. I thought I defined it when I put in:

  if(err.code === 11000) {
        error = 'That email is already taken, try another.';
   }

The error I received is:

/Users/darceymckelvey/Documents/auth/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:779
      catch(err) { process.nextTick(function() { throw err}); }
                                                       ^
ReferenceError: error is not defined
    at /Users/darceymckelvey/Documents/auth/app.js:57:44
    at /Users/darceymckelvey/Documents/auth/node_modules/mongoose/lib/document.js:1747:19
    at handleError (/Users/darceymckelvey/Documents/auth/node_modules/mongoose/node_modules/hooks-fixed/hooks.js:40:22)
    at next_ (/Users/darceymckelvey/Documents/auth/node_modules/mongoose/node_modules/hooks-fixed/hooks.js:75:26)
    at fnWrapper (/Users/darceymckelvey/Documents/auth/node_modules/mongoose/node_modules/hooks-fixed/hooks.js:186:18)
    at /Users/darceymckelvey/Documents/auth/node_modules/mongoose/lib/model.js:290:15
    at /Users/darceymckelvey/Documents/auth/node_modules/mongoose/lib/model.js:191:14
    at /Users/darceymckelvey/Documents/auth/node_modules/mongoose/lib/model.js:135:9
    at /Users/darceymckelvey/Documents/auth/node_modules/mongoose/node_modules/mongodb/lib/collection.js:484:20
    at /Users/darceymckelvey/Documents/auth/node_modules/mongoose/node_modules/mongodb/lib/collection.js:597:14
    at /Users/darceymckelvey/Documents/auth/node_modules/mongoose/node_modules/mongodb/lib/bulk/unordered.js:469:9
    at resultHandler (/Users/darceymckelvey/Documents/auth/node_modules/mongoose/node_modules/mongodb/lib/bulk/unordered.js:416:5)
    at /Users/darceymckelvey/Documents/auth/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:778:13
    at Callbacks.emit (/Users/darceymckelvey/Documents/auth/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:95:3)
    at null.messageHandler (/Users/darceymckelvey/Documents/auth/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:249:23)
    at Socket.<anonymous> (/Users/darceymckelvey/Documents/auth/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:262:22)
like image 376
Darcey Mckelvey Avatar asked Nov 15 '25 00:11

Darcey Mckelvey


1 Answers

Sorry - just reread your question/code - this is a scoping issue:

user.save(function(err) {
    if (err) {
      var error = 'Something bad happened, try again!';
      if(err.code === 11000) {
        error = 'That email is already taken, try another.';
      }
      res.render('register.jade', { error: error });
like image 86
Tim Avatar answered Nov 17 '25 19:11

Tim



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!