使用快速会话和express-socket.io会话的错误NodeJs
问题描述:
我正在使用nodejs express-session和express-socket.io-session,问题是当我运行我的server.js时,有一些错误:使用快速会话和express-socket.io会话的错误NodeJs
express-session deprecated undefined resave option; provide resave option node_modules\express-socket.io-session\index.js:66:7
express-session deprecated req.secret; provide secret option node_modules\express-socket.io-session\index.js:66:7
express-session deprecated undefined saveUninitialized option; provide saveUninitialized option node_modules\express-socket.io-session\index.js:66:7
下面是代码:
var express = require('express');
var session = require('express-session');
var io = require('socket.io').listen(http);
var sharedsession = require("express-socket.io-session");
var app = express();
app.use(session({
secret: 'ssshhhhh',
resave: true,
saveUninitialized: true
}));
io.use(sharedsession(session, {
resave: true,
secret: 'ssshhhhh',
saveUninitialized: true
}));
io.sockets.on('connection', function(socket){
console.log(socket.handshake.session);
});
我希望我已经清楚我的问题。谢谢
答
您的设置看起来不正确,您希望以可以通过express和socket.io共享的方式定义会话。
const session = require('express-session')({
secret: 'ssshhhhh',
resave: true,
saveUninitialized: true
});
const sharedsession = require('express-socket.io-session');
...
app.use(session);
io.use(sharedsession(session));
@ireeqhz答案仍然适用,您不会将已配置的会话传递到socket.io中,您将传递给会话构造函数的引用。 – James