2017-10-15 85 views
0

我试图实现一个异步方法,它对特定的API进行POST调用并检索其数据,然后将结果存储在用户的会话中。这项任务本身似乎很容易,但是当我这样做的时候,这是一种“即忘即忘”的风格。设置标题后设置会话

我不希望等待结果从外部API返回,而是让用户加载他请求的页面并继续浏览。只有当响应准备就绪后,我希望它保存在会话中。

一切似乎都正常工作,但唯一的问题是我设置会话,并继续下一个路线的一刻,一切都会丢失,就好像我从来没有在第一页中设置它。调试代码还表明该过程完成后没有任何错误,因此我怀疑在设置响应头之后设置会话时出现问题。但似乎无法理解为什么这应该是一个问题。

我正在使用nodejs express和mongodb会话&数据库处理。

router.get('/myroute', function(req, res, next) { 
    request({ 
     url: endpoint, 
     method: "POST", 
     json: true, 
     body: jsonData 
    }, function(error, response, body) { 
    req.session.mykey = 'some response'; 
    }); 
    res.redirect('/otherroute'); 
}); 

router.get('/checkresult', function(req, res, next) { 
    res.json(req.session.mykey); 
}); 

回答