1
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 会话?

4

1 回答 1

0

不知道它是如何引起你的症状的,但这条线:

req.session.user = new.user;

应该是:

req.session.user = newu.user;

更新

问题的根源是创建目录会触发 nodemon 重新启动应用程序,并且默认的内存会话存储在发生这种情况时会丢失所有会话。解决方法是通过connect-redis使用像Redis这样的持久会话存储。

于 2012-12-21T21:48:06.220 回答