GraphQL从axios返回空数据[重复]

Posted

技术标签:

【中文标题】GraphQL从axios返回空数据[重复]【英文标题】:GraphQL returning null data from axios [duplicate] 【发布时间】:2018-07-13 08:46:58 【问题描述】:

我正在用 Node.js 和 Express 编写一个 GraphQL 服务器。我有一个 JSON 数据文件,因此我使用 Axios 从该 JSON 文件中查询数据并将其传递给 GraphQL 查询,

const RootQuery = new GraphQLObjectType(
name:'RootQueryType',
fields: 
    holiday: 
        type: Holiday,
        args:
            date:type:GraphQLString,
        ,
        resolve(parentValue, args) 
            return axios.get('http://localhost:3000/holidays?date='+ args.date).then(res => res.data);
        
    ,

console.log(res.data),我正在获取数据,但是,在从 GraphiQL 按日期查询时,我正在获取

"data": "holiday": "holiday": null

【问题讨论】:

【参考方案1】:

我曾经为完全相同的问题而苦苦挣扎。我意识到来自 REST API / JSON 文件的数据需要一些时间才能获取,而 GraphQL 不会等待接收它。所以我决定使用 Async 和 Await,这样,GraphQL 就等待接收数据。在您的情况下,代码如下所示:

const RootQuery = new GraphQLObjectType(
name:'RootQueryType',
fields: 
    holiday: 
        type: Holiday,
        args:
            date:type:GraphQLString,
        ,
        Async resolve(parentValue, args) 
            const results= await axios.get('http://localhost:3000/holidays?date='+ args.date)
           .then(res => res.data);
           return results;
        
    ,

【讨论】:

以上是关于GraphQL从axios返回空数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

当graphQL的查询从mongodb返回空数据时,你应该检查啥?

GraphQL Apollo 无法为不可空返回 Null [重复]

Nest JS GraphQL“不能为非空返回null” [重复]

GraphQL 查询从 JSON 数据源返回 GraphiQL 和 App 中的空对象

axios在返回数据之前返回空数组

Graphql apollo 客户端从 AppSync 返回空值