GraphQL从axios返回空数据

GraphQL从axios返回空数据,graphql,axios,express-graphql,Graphql,Axios,Express Graphql,我正在Node.js和Express中编写一个GraphQL服务器。我有一个JSON数据文件,因此我使用Axios从该JSON文件查询数据并将其传递给GraphQL查询 const RootQuery = new GraphQLObjectType({ name:'RootQueryType', fields: { holiday: { type: Holiday, args:{ date:{type:GraphQLString},

我正在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按日期查询时,我得到了数据

{
“数据”:{
“假日”:{
“假日”:空
}
}

}

不久前,我也曾为同样的问题苦苦挣扎。我意识到从RESTAPI/JSON文件获取数据需要一些时间,GraphQL并不等待接收数据。所以我决定使用Async和Wait,这样,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;
        }
    },

我在过去的某个时候也遇到过同样的问题。我意识到从RESTAPI/JSON文件获取数据需要一些时间,GraphQL并不等待接收数据。所以我决定使用Async和Wait,这样,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;
        }
    },