Как разобрать [Obect] и [Array] PokeAPI в nodejs - PullRequest
0 голосов
/ 06 мая 2020

это мой первый пост о stackoverflow.
В настоящее время я работаю над ботом Discord. Я сейчас пытаюсь добавить команды для просмотра статистики покемонов.

Пока мне удалось узнать имя, идентификатор и вес покемона. Это нормально, но я чувствую, что с помощью API можно получить больше данных.

Вот мой текущий код:

const Discord = require('discord.js');
const { RichEmbed } = require('discord.js');
const fetch = require('node-fetch');
const Command = require('../../../base/Command.js');

class pokemonLookup extends Command {
    constructor(client) {
    super(client, {
        name: 'pokesearch',
        description: 'Look up a pokemon!',
        aliases: ['ps'],
        guildOnly: false,
        ownerOnly: false,
        category: 'Pokemon',
        extended: 'Search some information about any pokemon. (Correct spelling is required.'
    })
    }

    async run(message, args) {

    let pokemon = args[0];

    fetch(`https://pokeapi.co/api/v2/pokemon/${pokemon}`)
        .then(res => res.json())
        .then(data => {
        const name = data.species.name;
        const url = data.species.url;
        const weight = data.weight / 10;
        const em = new RichEmbed();
        em.setTitle('Pokemon Stats');
        em.setDescription(`Name: [${name.toUpperCase()}](${url})`);
        em.addField('Pokedox Number', data.id);
        em.addField('Weight (kg)', weight);
        em.setThumbnail(data.sprites.front_default);

        message.channel.send(em)
        })
    }
}
module.exports = pokemonLookup

Если я напечатаю (data) на консоль, я получаю следующее:

moves: 
   [ { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] },
     { move: [Object], version_group_details: [Array] }
]

И поскольку на их веб-сайт , у них четко указаны move и version_group_details, мне было интересно, как go получить эту информацию.

1 Ответ

0 голосов
/ 07 мая 2020

Вы можете легко зарегистрировать эту информацию, выполнив:

console.log(data.moves[0].move)
console.log(data.moves[0].version_group_details)

, он вернет что-то вроде этого:

>> {......} // move
>> [......] // version_group_details
...