2016-05-22 15 views
0

npmからcardiモジュールを使用しています。このモジュールのfromUrlメソッドを使用すると、コールバックが呼び出されません。私はモジュールのソースコードを掘り下げ、この状況を引き起こす部分が要求メソッドであることを確認します。パーツを新しいファイルにコピーし、ログを追加して実行しました。実際には結果やエラー/例外は表示されません。nodejs要求コールバックが呼び出されていない

これはおそらく、私が与えたURLによって引き起こされます:http://www.basedesign.comこれは他のURLと連携しているためです。最初に開始文字列しか記録しません。その後はログに記録されません応答が受信されましたまたは例外が発生しました。他のURLを使用すると、を受け取ったの応答が正常に印刷されます。このベースのURLがこの問題の原因になっている可能性がありますか?

編集:私のnodejsバージョンはv0.10.44で、リクエストバージョンは2.72.0です。 この問題は新しいバージョンのnodejでは発生しませんが、v0.10.xバージョンのノードを使用する必要があります。

var request = require('request'); 
console.log('start'); 
try { 
    var url = 'http://www.basedesign.com'; 
    var useragent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36'; 
    var jar = request.jar(); 
    var options = { 
     method: 'GET', 
     url: url, 
     followAllRedirects: true, 
     rejectUnauthorized: false, 
     headers: { 
      'User-Agent': useragent 
     }, 
     jar: jar 
    }; 

    request(options, function (error, resp, body) { 
     console.log('Response received'); 
     if (error) { 
      console.log(error); 
     } 
    }); 
} catch (exception) { 
    console.log('Exception occured'); 
    console.log(exception); 
} 
+0

私は、これが「ベースデザイン」のマーケティング戦術のように思われるとは思わない。 – jsejcksn

答えて

0

私はあなたの問題を再現することはできません。私はrequestTry it pageに正確なコードを貼り付けようとしましたが、結果としてResponse receivedが得られます。 tonicdev.com


EDIT

テストは、私はそれが4.4.x.対のNode.jsまで動作しないことがわかりましたAPI changes between v0.10 and v4をチェックして、Nodeでhttpの変更点を確認してください。私は正確な原因を特定することはできませんが、私の推測では、ノードが要求/応答の処理であり、requestまたはあなたのコードではないということです。

+0

ノードバージョン0.10.44をお試しください。 – erdem

+0

@erdem可能であれば、 'node'と' request'のバージョンを最新の安定版に更新してください。あなたの質問に 'node'と' request'を追加してください。 – jsejcksn

+0

ありがとう@Jesse。私は質問を更新しました。しかし、自分のバージョンのノードを更新することはできません。私のコードは大きなプロジェクトの一部であり、ノードv0.10.xを使用しています。 – erdem

関連する問題