#45 Using ES6 promises now

master
Keith Irwin 2017-04-13 18:59:46 -04:00
parent 67061fd99c
commit d74f0f2087
No known key found for this signature in database
GPG Key ID: 378933C743E2BBC0
2 changed files with 28 additions and 19 deletions

View File

@ -105,9 +105,10 @@ router.route('/password/:token')
User
.findOne({'auth.passToken': req.params.token})
.where('auth.tokenExpires').gt(Date.now())
//TODO: Add own promise libary
.exec((err, user) => {
if (err) { mw.throwErr(err,req); }
.catch((err)=>{
mw.throwErr(err,req);
})
.then((user) => {
if (!user) {
req.flash('danger', 'Password reset token is invalid or has expired. ');
res.redirect( (req.isAuthenticated)?'/settings':'/login' );
@ -124,18 +125,18 @@ router.route('/password/:token')
} )
.post( (req,res,next)=>{
//TODO: Validate password
// Delete token
res.locals.passwordUser.auth.passToken = undefined;
res.locals.passwordUser.auth.tokenExpires = undefined;
// Create hash
res.locals.passwordUser.generateHash( req.body.password, (err,hash)=>{
if (err){ mw.throwErr(err,req); }
else {
// Save new password to db
res.locals.passwordUser.auth.password = hash;
res.locals.passwordUser.save( (err)=>{
@ -148,10 +149,10 @@ router.route('/password/:token')
res.redirect('/login#login');
}
});
}
} );
} );

View File

@ -21,16 +21,24 @@ const
/* SETUP */ {
/* Database */ mongoose.connect(env.mongoSetup, {
server:{socketOptions:{
keepAlive:1, connectTimeoutMS:30000 }},
replset:{socketOptions:{
keepAlive:1, connectTimeoutMS:30000 }}
}).catch((err)=>{
mw.throwErr(err);
}).then(()=>{
console.log(`💿 Mongoose connected to database`);
});
/* Database */ {
// Setup with native ES6 promises
mongoose.Promise = global.Promise;
// Connect to database
mongoose.connect(env.mongoSetup, {
server:{socketOptions:{
keepAlive:1, connectTimeoutMS:30000 }},
replset:{socketOptions:{
keepAlive:1, connectTimeoutMS:30000 }}
}).catch((err)=>{
mw.throwErr(err);
}).then(()=>{
console.log(`💿 Mongoose connected to database`);
});
}
/* Templates */ {
nunjucks.configure(__dirname+'/views', {