1
我試圖讓會話在Express 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);
我相信只有對此的合乎邏輯的解釋是,我將文件以錯誤的順序包含在內,因此會話無法保存?
在你的'db.js'中不應該'module.exports = sessionStore;'而不是'return sessionStore;'? – mscdex
哈哈,當然它應該。當我使用express.js而不是db.js時,我粘貼了這個副本!嗯添加它作爲答案,我會接受它。雖然我想知道,我應該刪除這個問題作爲一個非常具體的問題。 –