Merhaba yüzden benim passport.js aşağıdaki kod var: maalesefpassport.js içinde daha fazla parametre geçirilemez - ORTALAMA Stack
passport.use('local-signup', new LocalStrategy({
// by default, local strategy uses username and password, we will override with email
usernameField : 'email',
passwordField : 'password',
nameField: 'fullname',
passReqToCallback : true // allows us to pass back the entire request to the callback
},
function(req, email, password, done, fullname) {
// asynchronous
// User.findOne wont fire unless data is sent back
process.nextTick(function() {
// find a user whose email is the same as the forms email
// we are checking to see if the user trying to login already exists
User.findOne({ 'local.email' : email }, function(err, user) {
// if there are any errors, return the error
if (err)
return done(err);
// check to see if theres already a user with that email
if (user) {
return done(null, false, req.flash('signupMessage', 'That email is already taken.'));
} else {
// if there is no user with that email
// create the user
var newUser = new User();
// set the user's local credentials
newUser.local.email = email;
newUser.local.password = password;
newUser.local.fullname = fullname;
newUser.local.role = "default";
// save the user
newUser.save(function(err) {
if (err) {
throw err;
}
console.log(newUser);
return done(null, newUser);
});
}
});
});
}));
Ve veritabanına tamadı kaydetmeniz gerekir ancak eklemez çünkü son parametredir, bittikten sonra. Ama hasta bitmeden önce isim koyduysa, yapılan geri dönüş bulunmaz ve bana bir uygulama çökmesi verir.
Çözüm olarak neler olabileceğini düşünüyorsunuz?
Tam adı (nameField) "req" paramından alamıyor musunuz? – lipp
Hayır, yapamam, sadece denedim. – NinetyHH