我正在尝试创建一个对象并将其存储在会话中,以便随处访问它。
需要:
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的新手,我在处理会话时做错了什么?
答案 0 :(得分:1)
express-session
使用JSON.stringify
序列化会话数据,因此您无法在会话中保存复杂对象的实例。序列化将删除所有对象方法。