在db回调上重新生成会话

时间:2014-07-31 16:31:19

标签: node.js mongodb express

我正在尝试成功验证用户凭据的会话。但是当代码在db回调中时,会话不会重新生成

app.post('/login',function(req,res){

var userName=req.body.userid.toLowerCase();
db.collection('credentials').findOne({'userName':userName},function(err,result){
    req.session.regenerate(function (err) { 

    });
});

});

它可以正常工作

app.post('/login',function(req,res){
var userName=req.body.userid.toLowerCase();
req.session.regenerate(function (err) { 

    });
db.collection('credentials').findOne({'userName':userName},function(err,result){

});

});

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

看起来错误就在我身上。代码响应了我发布的代码下面的请求。由于这些工作在异步中,我想响应是在会话被重置时发送的。

app.post('/login',function(req,res){

var userName=req.body.userid.toLowerCase();
db.collection('credentials').findOne({'userName':userName},function(err,result){
    req.session.regenerate(function (err) { 

    });
    res.send('welcome '+result.firstName+' '+result.lastName);
});

});

我在regenarte回调中移动了响应,现在它正在运行。