javascript - Node.js 重启后保持 Session

标签 javascript node.js mongodb session

我正在尝试获取 session 以在 Express v4 中存储护照 session ,但在服务器重新启动后它不会持续存在。我已经在使用 connect-mongo 所以我不清楚为什么它目前没有持续存在。

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);

我认为对此唯一合乎逻辑的解释是我以错误的顺序包含了文件,因此无法保存 session ?

最佳答案

sessionStore 需要在 db.js返回,而不是 module.exports = sessionStore; .

关于javascript - Node.js 重启后保持 Session,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30963936/

相关文章:

javascript - 如何获取 JavaScript 全局变量并将其发送到 php 文件中?

javascript - 将 https 与 express io 结合使用

node.js - 如果 dynamodb 中不存在项目,则无法返回数组

用于多用户应用程序的 mongodb 数据库架构

java - 将 JSON 数组插入 mongodb

javascript - 在 Chrome 中观察元素大小

javascript - 三个js的loader使用webworker和IndexedDB

mongodb - 在使用 MongoDB 和 Golang 的查找引用中获取值

javascript - 无法正确加载更少

javascript - MEANIO 4 个集群只为计划的作业运行一次?