私は、特定のAPIへのPOST呼び出しを行い、そのデータを取得し、その結果をユーザーのセッションに格納する非同期メソッドを実装しようとしています。タスクそのものはかなり簡単なようですが、私はそれを「火と忘れ」のスタイルにすると問題になります。ヘッダーを設定した後にセッションを設定する
結果が外部APIから戻ってくるのを待つのではなく、ユーザーにリクエストされたページを読み込ませてブラウジングを続行させることができます。応答が準備ができているときだけ、私はそれをセッションに保存します。
すべてがうまくいっているようですが、セッションを設定して次のルートに進む唯一の問題は、すべてが最初のページに設定されていないかのように失われます。コードをデバッグすると、プロセスが何のエラーもなく完了したことが示されます。したがって、応答ヘッダーが設定された後にセッションを設定することに問題があると思われます。しかし、それがなぜ問題になるのか理解できないようです。
私はエクスプレスでnodejsを、セッションでは&のデータベース処理のために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);
});
素晴らしい!魅力のように動作します。 –