5

node.js で http-proxy を使用しています。別のサーバーへのプロキシ リクエストがあります。私の要件は、プロキシ要求が 10 秒でタイムアウトすることです。また、タイムアウトが発生したときに、ユーザーにカスタム メッセージを表示できるはずです

私は以下のコードを持っています

var proxy = new httpProxy.RoutingProxy();
  req.on('error', function (err,req,res){
       res.send("An error occured");
  });
  proxy.proxyRequest(req, res, {
    host: 'localhost',
    port: port,
    headers:req.headers,
    timeout:10000
  })  

これによりタイムアウトが設定されます (理由は不明ですが、17 秒でタイムアウトになります) が、コールバックは実行されません。標準のブラウザメッセージを表示するだけです

The connection was reset
          The connection to the server was reset while the page was loading.

前もって感謝します

更新

私は試した

proxy.on('proxyError', function (err,preq,pres) {
    pres.writeHead(500, { 'Content-Type': 'text/plain' });
    pres.write("An error happened at server. Please contact your administrator.");
    pres.end();
  });

今回はメソッドが呼び出されますが、応答が既に送信されていると不平を言うため、ヘッダーを設定できません

4

1 に答える 1