I'm trying to pick up web development again and I've run into a problem in my passport strategy where I call User.findOne() to check if a name or email is already in use. The console.log right before it prints, but the console.log in the callback function does not. Nothing crashes.
Mongoose reports a successful connection to Mongodb (free atlas sandbox) when I launch the server.
How could I troubleshoot this further?
passport.use('local-signup', new LocalStrategy({
usernameField : 'signup[email]',
passwordField : 'signup[password]',
passReqToCallback : true
},
function(req, email, password, done) {
process.nextTick(function() {
console.log('passport strategy local-signup: req.body.signup:', req.body.signup );
User.findOne({$or: [
{ 'email': email },
{ 'name': req.body.signup.name }
]}, function(err, user) {
console.log("FORTY TWO SV");
if (err) return done(err);
if (user && (user.name === req.body.signup.name)) {
return done(null, false, { message: 'User name already taken.' });
} else if (user && (user.email === email)) {
return done(null, false, { message: 'An account with the email address already exists' });
} else if (req.body.signup.password !== req.body.signup.verify) {
return (done(null, false, { message: "The passwords don't match!"}));
} else {
var newUser = new User();
newUser.email = email;
newUser.name = req.body.signup.name;
newUser.password = newUser.generateHash(password);
console.log("new user being created!", newUser);
return done(null, newUser);
// newUser.save(function(err) {
// if (err) throw err;
// console.log('Created new user', newUser);
// return done(null, newUser);
// });
}
});
});
}));
How I connect to the database:
// Connect to the database.
mongoose.connect(config.mongoUri, { useMongoClient: true });
mongoose.connection.on('error', console.error.bind(console, 'Connection error!'));
mongoose.connection.once('open', function(){
console.log("MongoDB connected successfully");
});
The full project code is here if I've left out something potentially useful: https://github.com/brianbauer42/InfinitePlaylist/blob/master/server.js
Any tips will would be highly appreciated, thank you!