TypeError: User.serializeUser не является функцией - PullRequest
1 голос
/ 12 апреля 2020

Я пытаюсь добавить аутентификацию в моем приложении с passport.js и passport-local-mongoose и получаю ошибку, которую я пытался решить, используя другой подход, скажем, используя serialze и deserialize функцию из passport.js, тогда это фактически Работа. Что я делаю не так здесь, пожалуйста, помогите ?

Я также попробовал другое решение, данное на этой табличке в отношении этого вопроса

**TypeError: User.serializeUser is not a function**

user. js файл в каталоге моделей

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const passportLocalMongoose = require('passport-local-mongoose');

const User = new Schema({
    username: String,
    password: String
});

User.plugin(passportLocalMongoose);

const User =  mongoose.model('User', User);
exports.User = User

приложение. js файл выглядит как

const   express = require('express'),
        mongoose = require('mongoose'),
        passport = require('passport'),
        bodyParser = require('body-parser'),
        User = ('./models/user'),
        LocalStrategy = require('passport-local'),
        passportLocalMongoose = require('passport-local-mongoose');


mongoose.connect('mongodb://localhost:27017/authdemoapp', {
    useUnifiedTopology:true,
    useNewUrlParser:true
});

const app = express();
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({extended:true}))
// passport and sessions setup
app.use(require('express-session')({
    secret: 'My Name Is IzharUlhaque',
    resave: false,
    saveUninitialized: false
})); 

app.use(passport.initialize());
app.use(passport.session());


passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
...