【发布时间】:2017-01-02 13:40:55
【问题描述】:
var LocalStrategy = require('passport-local').Strategy;
var User = require('../models/user');
module.exports = function(passport){
passport.use('local-signup', new LocalStrategy({
usernameField: 'email',
passwordField: 'password',
passReqToCallback: true
},
function(req, email, password, done){
User.findOne({'local.username': email}).exec()
.then(function(user) {
console.log(user);
if(user){
return done(null, false, {message: 'Username already taken!'});
}
else{
var newUser = new User();
newUser.local.username = email;
newUser.local.password = password;
return newUser.save();
}
})
.then(function(user) {
console.log('DEBUG DEBUG DEBUG');
done(null, user);
})
.catch(function(err) {
done(err);
});
}
));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(userid, done) {
User.findById(userid).exec()
.then(function(user) {
done(user);
});
});
};
在我的情况下,无论是否调用 return newUser.save(),都会打印调试日志。
是否可以只在调用 return newUser.save() 时打印调试日志?
顺便说一句,我正在使用 passportJS 进行身份验证,并且对于我使用全局 es6 承诺覆盖 mongoose 默认承诺的承诺。
【问题讨论】:
标签: node.js mongoose promise passport.js