NodeJS - 在会话中创建一个对象

时间:2017-03-16 10:36:17

标签: node.js session

我正在尝试创建一个对象并将其存储在会话中,以便随处访问它。

需要:

var session = require('express-session');

在app.js中:

app.use(session({
    secret: '1234567890poiuytrewq1234567890-.,',
    resave: false,
    saveUninitialized: false
}));
app.use(function(req, res, next){
   if(!req.session.auth){
       req.session.auth = new AuthService();
   }
   next();
});

如果我console.log(req.session.auth)那么对象就可以了。但是,如果我去一条路线,那么物体就不存在了:

router.post('/login', function(req, res){
    if(req.body.remember){
        //I'll do this later
    }
    var username = req.body.username;
    var cryptPass = md5(req.body.password);
    res.send(req.session.auth);
});

我是NodeJS的新手,我在处理会话时做错了什么?

1 个答案:

答案 0 :(得分:1)

express-session使用JSON.stringify序列化会话数据,因此您无法在会话中保存复杂对象的实例。序列化将删除所有对象方法。