nodeJSが再起動したときにセッションを保存するためにconnect-mongoを追加しようとしています。ReferenceError:セッションが( 'connect-mongo')(セッション)で定義されていません
私は追加のドキュメント毎の: MongoStore = require('connect-mongo')(session),
を、私のrequire('express-session')
に私はエラーを取得しています
store: new MongoStore({
url: mongooseDB,
touchAfter: 24 * 3600
})
とapp.use(passport.session());
をコメントアウトを追加しました:にReferenceErrorを:セッションが定義されていません指し示されるのはMongoStore = require('connect-mongo')(session),
app.jsファイルを参考に追加しました。これをどうすれば解決できますか?
'use strict';
const express = require('express'),
app = express(),
bodyParser = require('body-parser'),
mongoose = require('mongoose'),
MongoStore = require('connect-mongo')(session),
passport = require('passport'),
flash = require('connect-flash'),
LocalStrategy = require('passport-local'),
methodOverride = require('method-override'),
logger = require('morgan'),
cookieParser = require('cookie-parser'),
User = require('./models/user'),
faker = require('faker'),
path = require('path');
const indexRoute = require('./routes/index'),
usersRoute = require('./routes/users'),
giftsRoute = require('./routes/gifts.js'),
searchRoute = require('./routes/search');
const mongooseDB = 'mongodb://localhost/giftcashing';
mongoose.connect(mongooseDB);
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(logger('dev'));
app.use(bodyParser.urlencoded({extended: true}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/bower_components', express.static(__dirname + '/bower_components'));
app.use(methodOverride("_method"));
app.use(flash());
app.use(require('express-session')({
secret: 'anything',
resave: false,
saveUninitialized: false,
store: new MongoStore({
url: mongooseDB,
touchAfter: 24 * 3600
})
}));
// PASSPORT CONFIGURATION
app.use(passport.initialize());
// app.use(passport.session());
// use static authenticate method of model in LocalStrategy
passport.use(new LocalStrategy(User.authenticate()));
// use static serialize and deserialize of model for passport session support
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
app.use(function (req, res, next) {
res.locals.currentUser = req.user;
res.locals.error = req.flash('error');
res.locals.success = req.flash('success');
next();
});
// catch 404 and forward to error handler
// app.use(function(req, res, next) {
// var err = new Error('Not Found');
// err.status = 404;
// next(err);
// });
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
// render the error page
res.status(err.status || 500);
res.render('error');
});
app.use('/', indexRoute);
app.use('/users', usersRoute);
app.use('/gifts', giftsRoute);
app.use('/search', searchRoute);
module.exports = app;
あなたは素晴らしいです:)それは働いていました:)私もapp.use(passport.session())のコメントを外さなければなりませんでした。何らかの理由で私にログインさせていないのですが、私はそれをうまく処理しました。 :)あなたは素晴らしいです。 –