Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用express会话和express-socket.io-session节点时出错_Node.js_Sockets_Session_Express_Express Session - Fatal编程技术网

Node.js 使用express会话和express-socket.io-session节点时出错

Node.js 使用express会话和express-socket.io-session节点时出错,node.js,sockets,session,express,express-session,Node.js,Sockets,Session,Express,Express Session,我正在使用nodejs express session和express-socket.io-session,问题是当我运行server.js时,出现了一些错误: express-session deprecated undefined resave option; provide resave option node_modules\express-socket.io-session\index.js:66:7 express-session deprecated req.secret; pro

我正在使用nodejs express session和express-socket.io-session,问题是当我运行server.js时,出现了一些错误:

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中,而是传递对会话构造函数的引用。