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

问题描述 投票:1回答:2

当我尝试运行服务器,尝试Passport模块的require时,我收到此错误。

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只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是业界标准的虚拟文本,当时一台未知的打印机采用了类型的厨房,并将其拼凑成一本类型的样本。它不仅存在了五个世纪,而且还延续了电子排版,基本保持不变。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表格的推出而普及,最近还推出了包括Lorem Ipsum版本在内的Aldus PageMaker等桌面出版软件。

javascript node.js express passport.js passport-local
2个回答
3
投票

发生这种情况是因为它认为您正在尝试调用函数来查找错误。 is not a function

它需要护照模块,并尝试使用护照var作为arg调用它。

进口护照作为常数,

const passport = require('passport');

更新的答案

看来你试图导入'./config/passport'可能无法解析为函数请参考this answer

更新的答案#2

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


4
投票

实现它可能会有所帮助。

const passport = require(“护照”);

© www.soinside.com 2019 - 2024. All rights reserved.