要求本体を非同期に変更する必要があります。ノードhttp-proxy:要求本体の非同期変更
proxy.on('proxyReq', function(proxyReq, req, res, options) {
if(req.body) {
new Promise(function(resolve){
setTimeout(function() { // wait for the db to return
'use strict';
req.body.text += 'test';
let bodyData = JSON.stringify(req.body);
proxyReq.setHeader('Content-Type','application/json');
proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData));
// stream the content
proxyReq.write(bodyData);
resolve();
},1);
});
}
});
これを実行すると、設定された後にはmodfiyヘッダーを作成できないというエラーが表示されます。どちらが理にかなっている。
準備が整うまで、リクエストの送信を停止するにはどうすればよいですか? proxyReqからさまざまなリスナーを削除してみました。
この試してみてください。https://github.com/nodejitsu/node-http-proxy#setup-a-stand-alone-proxy-server-with-latency –