2016-07-27 3 views
-2

私はexpressを使用するサーバを作成しました。それはAWSにあります。私はAWSでもそのクローンを持っています。 私はノードJSの例から、それらの実装のREST APIを使用しよう:同じノードJS httpリクエストがあるサーバでECONNRESETを取得し、別のサーバでOK

var http = require('http'); 
    var data = JSON.stringify({ 
    }); 

    var options = { 
     timeout: 180000, 
     host: server, 
     port: '80', 
     path: restAPI, 
     method: 'GET', 
     headers: { 
      'Content-Type': 'application/json; charset=utf-8', 
      'Accept': "application/json", 
      'Cache-Control': "no-cache" 
     } 
    }; 


    var req = http.request(options, function (res) { 
    }); 
    req.on('error', function (err) { 
     console.log(err); 
    }); 
    req.write(data); 
    req.end(); 

私は、サーバ1「のサーバー」が使用している場合、それは完璧に動作します。これに対して、サーバー2を使用すると、ECONNRESETソケットハングアップを返しても機能しません。サーバー側からは、両方のサーバーが200でAPIに応答します。ブラウザから実行する例を使用すると、両方のサーバーで完璧に動作します。

ノードJS(すべてのサーバーとクライアントではv4.4.7)で問題が発生します。誰でも私に回避策を教えることができます。私は要求をやっているやり方を変えて、別のモジュールを使っているかもしれません。

+0

あなたの問題が何であるかは不明です。 ECONNRESETは相手側が接続を閉じたことを意味します。 – Alan

+0

私は明確にしましょう。 2つのサーバーで同じコードが実行されており、1つのサーバーが接続を終了しています。これは、NodeJSに関連するものでもプログラミングに関連するものでもありません。ノード4.4.7の問題(非常にありそうもない)だと思われ、回避策を求めている場合は、ノード6.xにアップグレードしてください。 – Alan

答えて

-1

問題は.writeです。それを削除するのが今働いています。 1つのサーバーと他のサーバーとの違いは、第1サーバーがCloudFlare経由で接続され、第2サーバーが直接接続されていたことです。第1サーバの直接接続は、第2サーバと同じ方法で失敗していました。 今、すべて動作しています。あなたのNO HELP Alanにありがとうございました。あなたは、助けの代わりに人を指し示すように努力している人の一人です。毎日世界を良くしてくれてありがとう!あなたは素晴らしいです!

関連する問題