J'obtiens cette erreur lorsque j'essaie d'exécuter le serveur, en essayant un module requis pour le passeport.

Passport JS -> require(...) n'est pas une fonction

const passport = require('passport');


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

MISE A JOUR Ici le dossier passeport

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 est simplement un texte factice de l'industrie de l'impression et de la composition. Lorem Ipsum est le texte factice standard de l'industrie depuis les années 1500, lorsqu'une imprimante inconnue a pris une cuisine de type et l'a brouillée pour créer un livre type. Il a survécu non seulement à cinq siècles, mais aussi au saut dans la composition électronique, demeurant essentiellement inchangé. Il a été popularisé dans les années 1960 avec la sortie de feuilles Letraset contenant des passages de Lorem Ipsum, et plus récemment avec des logiciels de PAO comme Aldus PageMaker incluant des versions de Lorem Ipsum.

2
Victor Segovia 17 mars 2019 à 20:27

2 réponses

Meilleure réponse

Cela se produit parce qu'il pense que vous essayez d'appeler une fonction avec votre erreur. is not a function

Il nécessite le module passeport et essayez de l'invoquer avec passeport var comme argument.

Importer le passeport comme une constante,

const passport = require('passport');

RÉPONSE MISE À JOUR

Il semble vous essayez d'importer './config/passport' qui ne se résout probablement pas à une fonction, veuillez vous référer à cette réponse

RÉPONSE À JOUR #2

On dirait que vous avez une faute de frappe. essayez de changer module.export en module.exports dans votre module personnalisé de passeport

4
Community 20 juin 2020 à 09:12

Mettez en œuvre cela, cela pourrait aider.

Const passeport=require("passeport");

5
Muhammad Areeb Siddiqui 17 mars 2019 à 17:30