尝试获取数据时 GraphQL 中的空值

Null value in GraphQL when trying to fetch data

为什么我在尝试从外部 API 获取数据时收到空值?

这是我的代码

resolvers.js

import fetch from 'node-fetch'

export const resolvers = {
  Query: {
    getCrypto: async() => {
      const response = await fetch(`https://min-api.cryptocompare.com/data/top/totalvolfull?limit=10&tsym=USD`)
      return response.json();

    }
  },
};


schema.grapqhl

type CryptoCurrency {
  Id: ID
  Name: String
  FullName: String
  PRICE: Float
  LASTUPDATE: Float
}

type Query {
  getCrypto: CryptoCurrency
}


错误截图:

你的 API returns 一个数组,所以应该像下面这样更改你的代码。(第一项)

 getCrypto: async () => {
        const response = await fetch(`https://min-api.cryptocompare.com/data/top/totalvolfull?limit=10&tsym=USD`)

        let data = await response.json()
        return data.Data[0].CoinInfo;
            }

或者,如果您打算检索所有名称,请先将您的查询更改为接受数组

type Query {
  getCrypto: [CryptoCurrency]
}


 getCrypto: async () => {
        const response = await fetch(`https://min-api.cryptocompare.com/data/top/totalvolfull?limit=10&tsym=USD`)

           let data = (await response.json()).Data.map(c => { return c.CoinInfo })


        return data

    }