2017-07-12 3 views
1

複数のAPIリクエストを実行しようとしており、それらのすべてからデータを表示しようとしていますが、いくつかの方法で試してみましたが、リクエスト。Axios Request - 応答中のすべてのオブジェクトを表示

(これは第二のリクエストから全て含まれており、最初から「名前」私が持っている一番近い:

router.get('/summoner', (req, res) => { 
    return axios.get('https://euw1.api.riotgames.com/lol/summoner/v3/summoners/by-name/SUMMONERNAME', { 
    headers: head 
    }) 
    .then(summoner => { 
    return axios.get('https://euw.api.riotgames.com/api/lol/EUW/v1.3/stats/by-summoner/SUMMONERID/summary?season=SEASON2017', {headers: head}); 
    }) 
    .then(summoner => { 
    res.json(summoner.data); 
    }) 
    .catch(function (error) { 
    console.log(error); 
    }); 
}); 

だけFIRST呼び出しからのすべてのデータが含まれています:

router.get('/summoner2', (req, res) => { 

    axios.all([ 
    axios.get('https://euw1.api.riotgames.com/lol/summoner/v3/summoners/by-name/SUMMONERNAME', {headers: head}), 
    axios.get('https://euw.api.riotgames.com/api/lol/EUW/v1.3/stats/by-summoner/SUMMONERID/summary?season=SEASON2017', {headers: head}) 
    ]) 
    .then(axios.spread(function(summonerResponse, statsResponse){ 
    res.json(summonerResponse.data); 
    res.json(statsResponse.data); 
    })) 
}); 

は最初のリクエストからすべてのデータが含まれています:

router.get('/summoner3', (req, res) => { 

    function getSummoner(){ 

    return axios.get('https://euw1.api.riotgames.com/lol/summoner/v3/summoners/by-name/SUMMONERNAME', {headers: head}); 

    } 

    function getStats(){ 

    return axios.get('https://euw.api.riotgames.com/api/lol/EUW/v1.3/stats/by-summoner/SUMMONERID/summary?season=SEASON2017', {headers: head}); 

    } 

    axios.all([getSummoner(), getStats()]) 
    .then(axios.spread(function (summoner, stats) { 
    res.json(summoner.data) 
    res.json(stats.data) 
    })); 
}); 

私は分で学んでいるので、完全ではありここでは間違っていますが、どんな助けでも大歓迎です。

答えて

0

応答は1回のみ送信できます。 現在、res.json(); res.json()を2回送信しています。 それはそうではありません。 nodejsコンソールにエラーログが表示されます。

覚えていること:1つのリクエスト、1つのレスポンス。

あなたはそれをやった

+0

res.json([summoner.data, stats.data])

以下、ありがとうそんなにように一度だけ、それを送信する必要があります! –

関連する問題