TypeError: done is not a function

var passport = require('passport');
var User = require('../models/users');
var Localstrategy = require('passport-local').Strategy;


passport.use('local.signup',new Localstrategy({
    usernameField: 'email',
    passwordField: 'password',
    roleField: 'role',
    passReqToCallback: true
},function (req,email,password,role,done) {
    req.checkBody('email','Invalid Email').notEmpty().isEmail();
    req.checkBody('password','Invalid Password').notEmpty().isLength({min:4});
    req.checkBody('role','Invalid Password').notEmpty();
    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 in use. '});
            //return done(null,false,req.flash('loginMessage', 'error'));

        }

        var newUser = new User();
        newUser.email    = email;
        newUser.password = newUser.encryptPassword(password);
        newUser.role = role;
        newUser.save(function (err, result) {
            if(err){
                return done(err);
            }
            return done(null,newUser);
        });
    });

}));
阅读 4.9k
1 个回答

你这个password模块是不是没有这个形参

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题