Passport JS-> require(...)不是函数

时间:2019-03-17 17:27:21

标签: javascript node.js express passport.js passport-local

当我尝试运行服务器,尝试安装Passport模块时遇到此错误。

Passport JS-> require(...)不是函数

const passport = require('passport');


require('./config/passport')(passport);

已更新 这里的护照文件

const LocalStrategy = require('passport-local').Strategy;

const User = require('../app/models/user');

module.export = function(passport) {

    passport.serializeUser(function(user, done) {
        done(null, user.id);
    });

    passport.deserializeUser(function(id, done) {
        User.findById(id, function(err, user) {
            done(err, user);
        })
    });

    passport.use('local-signup', new LocalStrategy({
            usernameField: 'email',
            passwordField: 'password',
            passReqToCallback: true
        },
        function(req, email, password, done) {
            User.findOne({ 'local.email': email }, function(err, user) {
                if (err) { return done(err); }
                if (user) {
                    return done(null, false, req.flash('signupMessage', 'El email ya existe'));
                } else {
                    var newUser = new User();
                    newUser.local.email = email;
                    newUser.local.password = newUser.generateHash(password);
                    newUser.save(function(err) {
                        if (err) { throw err; }
                        return done(null, newUser);
                    });
                }
            })
        }));

    passport.use('local-login', new LocalStrategy({
            usernameField: 'email',
            passwordField: 'password',
            passReqToCallback: true
        },
        function(req, email, password, done) {
            User.findOne({ 'local.email': email }, function(err, user) {
                if (err) { return done(err); }
                if (!user) {
                    return done(null, false, req.flash('loginMessage', 'El email no ha sido encontrado'));
                }
                if (!user.validatePassword(password)) {
                    return done(null, false, req.flash('loginMessage', 'Wrong password'));
                }
                return done(null, user);
            })
        }));
}

Lorem Ipsum只是印刷和排版行业的伪文本。自1500年代以来,Lorem Ipsum一直是行业的标准伪文本,当时一位不知名的打印机拿起一个厨房,将其打乱成一本样本书。它不仅生存了五个世纪,而且在电子排版方面也取得了飞跃,但基本上没有改变。它在1960年代开始流行,发布了包含Lorem Ipsum段落的Letraset工作表,最近又发布了包括Alres PageMaker在内的桌面发行软件,包括Lorem Ipsum的版本。

2 个答案:

答案 0 :(得分:4)

实施此操作可能会有所帮助。

const Passport = require(“ passport”);

答案 1 :(得分:3)

之所以会发生这种情况,是因为它认为您正在尝试调用一个函数,从而会出错。 is not a function

它需要通行证模块,并尝试使用通行证var作为arg来调用它。

将护照作为常量导入

const passport = require('passport');

更新后的答案

似乎 您尝试导入'./config/passport'可能无法解析为函数,请参考 this answer

更新后的答案2

好像您有错字。尝试在您的护照自定义模块中将module.export更改为module.exports