【问题标题】:Fetching data axios获取数据 axios
【发布时间】:2021-08-30 06:23:50
【问题描述】:

我正在从 api 获取数据,它的响应是这样的

{
    "id": "BTC",
    "currency": "BTC",
    "symbol": "BTC",
    "name": "Bitcoin",
    "1d": {
      "volume": "47854345429.71",
      "volume_change": "42758948175.92",
    },
    "7d": {
      "volume": "308524476736.00",
      "volume_change": "42758948175.92",

    },

在这里,我正在使用查询器来获取特定选项.. 我正在尝试从 API 获取特定时间间隔的信息,即(1d、7d、30d、..)

    async volumechng(cmd) {
            try {
                keyManager = new KeyManager();
    
                const key = keyManager.getKey();
    
                const api = new CryptoAPI(key)
    
                const opts = await inquirer.prompt([
                    {
                        type: 'rawlist',
                        name: 'volumechng',
                        message: 'Volume change for interval ?',
                        choices: [
                            '1d',
                            '7d',
                        ],
                    }
                ])
                const volumeChange = await api.getVolumeChange(cmd,opts.volumechng)
    
            } catch (err) {
                console.log(err)
            }
        }
async getVolumeChange(coinOption,interval){
        try{
            const res = await axios.get(
                `${this.baseUrl}?key=${this.apiKey}&ids=${coinOption}`
            )
            let output = ''
            // console.log(interval) --> getting an output
            res.data.forEach(coin => {
                 output += `
                         ${coin.interval.volume_change}
                 `
            })

            return output
        }
        catch (err) {
            handleAPIError(err);
        }
    }

我在 console.log() 上得到了间隔的值,但我没有得到输出

【问题讨论】:

  • 如果您查看浏览器的“网络”选项卡,您会看到什么?
  • @LajosArpad 我正在制作一个 CLI ......所以,我不知道如何在浏览器中看到它......供参考的是我的 git repo here 这个问题就像我不要通过 opts.volumechng ,然后它会完美地从网址中获取所有内容......但当我在 api.getVolumeChange 中通过 opts.volumechng 时不会

标签: node.js api axios inquirerjs


【解决方案1】:

让我们检查一下:

  1. console.log('Data response', res.data)
  2. console.log("Interval: ", interval)

如果您提供更多的输出,我可以为您提供更多帮助。

请也登录控制台

res.data.forEach(coin => {
                 console.log("Coin ", coin)
                 output += `
                         ${coin.interval.volume_change}
                 `
            })

检查你的输出是什么。

【讨论】:

  • 一无所获...空白输出..这与询问者有关吗?...如果我在getVolumechng中没有通过opts.volumechng,它会完美获取..并给我硬币名称...但不是当我通过时
  • 当您将opts.volumechng 作为interval 传递时,这是一个对象,而不是字符串键名。所以coin.interval 什么都得不到。我很确定您的呼叫 api 获得成功数据,但是当您获得 coin.interval.volume_change 时无效。
  • 让我们检查一下:1.console.log('Data response', res.data) 2.console.log("Interval: ", interval)如果您提供它们的输出,我可以为您提供更多帮助。
猜你喜欢
  • 1970-01-01
  • 2018-09-19
  • 1970-01-01
  • 2022-01-04
  • 2019-03-14
  • 2020-06-19
  • 2021-07-27
  • 2020-12-05
  • 2021-10-07
相关资源
最近更新 更多