【问题标题】:Error while using express-session and express-socket.io-session NodeJs使用 express-session 和 express-socket.io-session NodeJs 时出错
【发布时间】:2018-03-07 00:18:53
【问题描述】:

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

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

【问题讨论】:

    标签: node.js sockets session express express-session


    【解决方案1】:

    您的设置看起来不正确,您希望以可以在 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 中,而是传递了对会话构造函数的引用。
    猜你喜欢
    • 1970-01-01
    • 2017-04-10
    • 2017-10-16
    • 2012-03-20
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 2018-05-18
    相关资源
    最近更新 更多