2017-09-25 140 views
0

我正在使用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); 
}); 

我希望我已经清楚我的问题。谢谢

回答

0

您的设置看起来不正确,您希望以可以通过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)); 
+0

@ireeqhz答案仍然适用,您不会将已配置的会话传递到socket.io中,您将传递给会话构造函数的引用。 – James