美文网首页
用 connect-mongo 把 session 存到 mon

用 connect-mongo 把 session 存到 mon

作者: saronic | 来源:发表于2016-11-22 15:49 被阅读162次

    因为用 pm2 启动 node, cluster 模式启动4个进程, session 不能共享。为了解决这个问题,把 session 存到数据库里。有两个比较好的选择,一个是 redis(没用过,过几天试试),另一个是 mongodb,mongodb 最好是运行在 in memory 引擎下,把数据存在内存中,可以比较快。但是查了社区版没有这个功能。

    connect-mongo 地址

    github 地址

    根据本地开发还是服务器上选择不同的 session 存储位置

    if (process.env.NODE_ENV === 'production') {
            app.use(session({
                secret: 'myweb',
                name: 'lsx',
                cookie: {
                    maxAge: 1800000
                },
                resave: false,
                saveUninitialized: true,
                store: new MongoStore({url:'mongodb://localhost/my_web_session'})
            }))
    } else {    
        app.use(session({
            secret: 'myweb',
            name: 'lsx',
            cookie: {
                maxAge: 1800000
            },
            resave: false,
            saveUninitialized: true,
        }));
    }
    

    并不需要在 mongodb 中自己手动建立 my_web_session, connect-mongo 会自动创建。

    查看 mongodb 中的 session

    mongo
    show dbs
    use my_web_session
    show collections
    db.session.find()
    

    相关文章

      网友评论

          本文标题:用 connect-mongo 把 session 存到 mon

          本文链接:https://www.haomeiwen.com/subject/rooppttx.html