节点js中的电子邮件验证显示500错误

时间:2018-10-05 07:39:22

标签: node.js

当我提交空白值时,它将正确给出缺少的凭据验证错误,但是当我输入无效的电子邮件时,它将给出500错误并重定向到POST URL。

passport.use('local.signup',new LocalStrategy({
    usernameField:'email',
    passwordField:'password',
    passReqToCallback:true
    },function(req,email,password,done){
        req.checkBody('email','Invalid email.').notEmpty().isEmail();
        req.checkBody('password','Invalid password.').notEmpty().isLength({ min: 5 });
        var errors=req.validationErrors();
        if(errors){
            var messages=[];
            errors.forEach(function(error){                
                 messages.push(error.msg);
            });
            return done('null','false',req.flash('error',messages));
        }
        User.findOne({'email':email},function(err,user){                
            if(err){
                return done(err);
            }
            if(user){
                return done(null,false,{message:'Email is already taken'});
            }
            var newUser=new User();
            newUser.email=email;
            newUser.username=req.body.username;
            newUser.password=newUser.encryptpassword(password);
            newUser.save(function(err,result){
                if(err){
                    return done(err);            
                }
                sendOtp.send("12345678910", "PRIIND", function(error,response) {
                    if(error){
                        console.log(error);
                    }
                    console.log(response);
                });                  
                return done(null,newUser);
             });
        });
}));

0 个答案:

没有答案
相关问题