2017-10-15 58 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); 
}); 

回答