尝试获取数据时 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
}
为什么我在尝试从外部 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
}