app.post('/register', express.BodyParser(), function (req, res){
var newu = new UserModel({});
newu.user = req.body.nuser;
newu.pass = req.body.npass;
newu.mail = req.body.nmail;
var pathu = __dirname + '/users/' + req.body.nuser;
newu.save(function (err, newu){
req.session.user = new.user;
if(err) throw err;
fs.mkdir(pathu, function (err){
if (err) throw err;
});
});
res.redirect('/home);
});
总是在执行fs.mkdir时,我丢失了所有当前的Express会话,有没有办法执行fs.mkdir并保留所有Express会话?
答案 0 :(得分:0)
不确定它是如何导致你的症状,但这一行:
req.session.user = new.user;
应该是:
req.session.user = newu.user;
<强>更新强>
问题的根源在于创建目录会触发nodemon重新启动应用程序,并且默认的内存中会话存储会在发生这种情况时丢失所有会话。修复方法是通过Redis使用connect-redis等持久会话存储。