2017-03-17 21 views
1

だから、私は私が正しいJSONデータを取得しますが、ルートを訪れるit.The初めて内部APIからJSONデータを取得し、表示するこのルートを設定している私は、ページを更新するとき私はエラーが発生し、ページが読み込みに固執しました。
注:私はあなたが呼び出しているAPIがエラー応答を与えたが、あなたがキャッチコールバックには何も送信されていないため、コンソールにエラーとページスタックロードを取得要求-約束は、要求を行うことができません二回

app.get('/',function(req,res){ 
var options = { 
//Here I initiate the API call.I actually have a url here. 
uri: '', 
json: true 
}; 

request(options) 
    .then(function(data) { 
     res.json(data); 
     res.end(); 
    }) 
    .catch(function (err) { 
     console.log(err); 
    }); 
}); 
+0

*「ページを更新するとエラーが発生する」* - これは...? –

+0

HPE_INVALID_CONSTANT.Iキャッシュを削除しても機能しますが、どのようにキャッシュ関連があるのか​​わかりません.APIからの応答をキャッシュします。 – sterg

答えて

0

を使用しています。これを試して。

app.get('/',function(req,res){ 
    var options = { 
     //Here I initiate the API call.I actually have a url here. 
     uri: '', 
     json: true 
    }; 

    request(options) 
     .then(function(data) { 
      res.json(data); 
      res.end(); 
     }) 
     .catch(function (err) { 
      console.log(err); 
      res.status(500).send(err); // set proper error code and send response here 
     }); 
    }); 
+0

私はここで間違っているかもしれませんが、 'then'ブロックではres.end(data)をres.endのようにしてはいけませんか?私はoyuが考えているだけで、res.send()メソッドを起動せずにレスポンスが成功することはないと知っています:p – Jackthomson

+0

res.send()はres.end()を呼び出します。 –

+1

@Jackthomson ['res.json'](https://expressjs.com/en/4x/api.html#res.json)のドキュメントを読んでください。 JSONコンテンツには 'res.send()'の役割があります。 –

関連する問題