亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

使用 Axios 和 Node.js 從 PokeAPI 取得特定統(tǒng)計(jì)資料 (Stats) 時(shí)遇到問題
P粉953231781
P粉953231781 2024-04-06 18:46:35
0
1
1196

我有一個(gè)問題,我正在嘗試使用 Pokemon API,但是當(dāng)我嘗試存取攻擊、HP 和速度統(tǒng)計(jì)資料時(shí),它顯示所有 Pokemon 的 undefined!誰能告訴我 API 呼叫出了什麼問題?

const axios = require('axios');

const apiPokemon = async () => { 
    try {
        const pokemons = await axios
        .get('https://pokeapi.co/api/v2/pokemon?limit=50')
        const secondUrlMap = await  pokemons.data.results.map(  pokemon  => {
            return pokemon.url
        })
        const pokemonArr = await Promise.all(secondUrlMap.map(async(url) => { 
            const urlResponse = await axios(url)
            return{
                id:urlResponse.data.id,
                name:urlResponse.data.name,
                height:urlResponse.data.height,
                weight:urlResponse.data.weight,
                hp:urlResponse.data.stats.find(stat => stat.name === 'hp')?.base_stat,
                attack:urlResponse.data.stats.find(stat => stat.name === 'attack')?.base_stat, 
                speed:urlResponse.data.stats.find(stat => stat.name === 'speed')?.base_stat,
                types:urlResponse.data.types.map((type) => type.type.name),
                img:urlResponse.data.sprites.other['official-artwork'].front_default,
            }
        }))
        return pokemonArr
    } catch (error) {
        return ({error:error.message})
    }
}

module.exports =  {
    apiPokemon,
}

我有一個(gè) index.js 檔案來測試 API 的接收,這就是它傳回的內(nèi)容:

const { apiPokemon } = require('./apiPokemon')

async function testApi() { 
    const pokemons = await apiPokemon()
    console.log(pokemons)
}

testApi()

API結(jié)構(gòu):

P粉953231781
P粉953231781

全部回覆(1)
P粉403549616

您目前的程式碼沒有正確考慮 JSON 結(jié)構(gòu) - 它正在陣列中每個(gè)物件的根中尋找 name 屬性。您需要使用 解構(gòu) 來存取stat 屬性直接在條件中:

hp: urlResponse.data.stats.find(({stat}) => stat.name === 'hp')?.base_stat
attack: urlResponse.data.stats.find(({stat}) => stat.name === 'attack')?.base_stat
// etc.

或您也可以將 stat.name 更改為 stat.stat.name。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板