express.jsの上にREST APIを構築しています。ルート内の変数を更新するのに問題があります。Express.js経路内のhttpコールで変数が更新されない
例:
私はrequest-promise
ライブラリを使用してHTTPリクエストを呼び出すことにより、私は始めるこのルートインサイドapp.get("/wp/page/create/:id", function(req, res)
を呼んでいます。ネストされたhttp呼び出しでこの呼び出しの応答を使用します。
ネストされた呼び出しのヘッダーにグローバル変数を使用し、etag
変数を使用して変更する必要があるのはヘッダーです。
コード:
global.postHeaders = headers;
postHeaders['X-HTTP-Method'] = "MERGE";
postHeaders['Content-Type'] = 'application/json;odata=verbose';
postHeaders['X-RequestDigest'] = spContext;
request.get({
url: "xxx",
headers: headers,
json: true
}).then(function(response) {
var etag = response.d.__metadata.etag
postHeaders['If-Match'] = etag;
request.post({
url: "xxx",
type: "POST",
body: data,
headers: postHeaders,
json: true
}).then(function(data) {
res.send(data).end()
console.log("All done!");
})
})
私は、サーバーの起動を開始し、すべてが正常に動作しますルートを入力します。私は再びそれを更新しようとしても、etag
の変数は同じです。
サーバーを再起動すると、最初の試行では再び動作しますが、2番目と3番目の試行では失敗します。
私が間違っていることは何ですか?