如何在Socket会话中使用MongoStore?

时间:2018-11-29 20:38:42

标签: node.js express session mongoose socket.io

根据文档,实现 express-socket.io-session 的常用方法是:

var app = require('express')(),
server  = require("http").createServer(app),
io = require("socket.io")(server),
session = require("express-session")({
    secret: "my-secret",
    resave: true,
    saveUninitialized: true
}),
sharedsession = require("express-socket.io-session");

// Attach session
app.use(session);

// Share session with io sockets
io.use(sharedsession(session));

实现 connect-mongostore 的常用方法是:

var express = require('express');
var session = require('express-session');
var MongoStore = require('connect-mongostore')(session);
var app = express();

app.use(session({
    secret: 'my secret',
    store: new MongoStore({'db': 'sessions'})
}));

如果要使用Socket会话,则需要直接在变量初始化中而不是在中间件中配置Express会话,否则会收到类似以下警告:

express-session deprecated undefined resave option; provide resave option app.js:62:9
express-session deprecated undefined saveUninitialized option; provide saveUninitialized option app.js:62:9
express-session deprecated req.secret; provide secret option app.js:62:9

但是,那一次我也无法实现MongoStore,因为初始化MongoStore对象时必须传递会话变量本身。

您知道我如何在同一应用程序中使用 express-session express-socket.io-session connect-mongostore 吗?

0 个答案:

没有答案