如何使用node-session启动会话

时间:2017-11-28 09:42:04

标签: node.js session

我有一个带有socket.io的node.js服务器,如下所示:

var port = process.env.PORT || 1337;
var server = require('http').createServer().listen( port );
var io = require('socket.io').listen( server );
var user = require('./p/a/t/h/user');
io.sockets.on('connection', function( socket ){
socket.on('login', function( data ){
      user.login( data, function ( err, res ) {

      });
   });
});

并且id喜欢使用某种识别登录用户的会话系统(我选择this一个)。 所以我的user模块看起来像这样:

var session = require('node-session');
session = new session({secret: 'secret-string','driver': 'file','files': process.cwd() + '/sessions','lifetime': 3600000,'expireOnClose': false});
module.exports = {
    login: function ( data, callback ) {
        session.sessionStart(  ); // ??
    }
};

如何在此处启动会话和/或从会话存储中获取相关会话数据?

1 个答案:

答案 0 :(得分:1)

找到了一个有效的解决方案。

var port = process.env.PORT || 1337;
var server = require('http').createServer().listen( port );
var io = require('socket.io').listen( server );
var user = require('./p/a/t/h/user');
io.sockets.on('connection', function( socket ){
    socket.on('login', function( data ){
          user.login( socket, data, function ( err, res ) {

          });
    });
});

并在user.js中:

var session = require('node-session');
session = new session({secret: 'secret-string'});
module.exports = {
login: function ( socket, data, callback ) {
    session.startSession( socket.request, socket.request.res, function() {
       user.session = socket.request.session;

    });
}

};

希望它对某人有所帮助。