2015-06-21 6 views
1

Я пытаюсь получить сеансы для хранения паспортных сессий в экспресс-версии v4 и не сохраняться после перезапуска сервера. Я уже использую connect-mongo, поэтому неясно, почему это не сохраняется в настоящее время.Продолжить сеанс после перезапуска node.js

db.js

module.exports = function(app, config) { 
    var mongoose = require('mongoose'), 
    Schema = mongoose.Schema, 
    session = require('express-session'), 
    MongoStore = require('connect-mongo')(session), 
    fs = require('fs'); 

    mongoose.connect(config.db); 

    mongoose.connection.on('error', console.error.bind(console, 'connection error:')); 
    mongoose.connection.once('open', function callback() { 
     console.info('Database Connected!'); 
    }); 

    var sessionStore = new MongoStore({mongooseConnection: mongoose.connection}); 
    module.exports = sessionStore; 
}; 

express.js

module.exports = function (app, config, passport, dbConnect) { 
    /* #Flash messaging and sessions ------------------------------------------------- */ 
    app.use(cookieParser('secretStrings')); 
    app.use(session({ 
     secret: 'secretStrings', 
     resave: true, 
     saveUninitialized: true, 
     cookie: { 
      path: '/', 
      httpOnly: true, 
      secure: false, 
      maxAge: null 
     }, 
     rolling: true, 
     store: dbConnect 
    })); 
    app.use(flash()); 

    /* #Set up passport ------------------------------------------------- */ 
    // use passport session 
    app.use(passport.initialize()); 
    app.use(passport.session()); 
}; 

Server.js

/* #Mongo --------------------------------------------------------------------- */ 
var db = require('./app/db')(app, config); 

/* #Express Settings --------------------------------------------------------------------- */ 
require('./config/express')(app, config, passport, db); 

Я считаю, что только логичным объяснением этого является то, что я включил файлы в неправильном порядке, чтобы сеансы не могли быть сохранены?

+1

Не должен 'module.exports = sessionStore;' вместо 'return sessionStore;' в вашем 'db.js'? – mscdex

+0

LOL, конечно, должно. У меня была копия, которая была вставлена, когда я получил ее в express.js, а не db.js! Умм добавьте его в качестве ответа, и я соглашусь с ним. Хотя мне интересно, должен ли я удалить этот вопрос как свою особую проблему. –

ответ

1

sessionStore должно быть return ed в db.js вместо module.exports = sessionStore;.

Смежные вопросы