Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回null的GraphQL架构相关查询_Javascript_Json_Express_Graphql_Schema - Fatal编程技术网

Javascript 返回null的GraphQL架构相关查询

Javascript 返回null的GraphQL架构相关查询,javascript,json,express,graphql,schema,Javascript,Json,Express,Graphql,Schema,我正在学习GraphQL,无法理解为什么此查询的name和description返回空数据?我是做错了什么,还是在什么地方打错了字 db.json(使用json服务器临时保存后端数据) server.js(使用express中间件) schema.js import axios from 'axios' import { GraphQLObjectType, GraphQLString, GraphQLInt, GraphQLSchema, } from 'gra

我正在学习GraphQL,无法理解为什么此查询的
name
description
返回空数据?我是做错了什么,还是在什么地方打错了字

db.json(使用
json服务器
临时保存后端数据)

server.js(使用express中间件)

schema.js

import axios from 'axios'
import {
    GraphQLObjectType,
    GraphQLString,
    GraphQLInt,
    GraphQLSchema,
} from 'graphql'

const CompanyType = new GraphQLObjectType({
    name: 'Company',
    fields: {
        id: {
            type: GraphQLString
        },
        name: {
            type: GraphQLString
        },
        description: {
            type: GraphQLString
        }
    }
})

const UserType = new GraphQLObjectType({
    name: 'User',
    fields: {
        id: {
            type: GraphQLString
        },
        firstName: {
            type: GraphQLString
        },
        age: {
            type: GraphQLInt
        },
        company: {
            type: CompanyType,
            async resolve(parentValue, args) {
                console.log({
                    parentValue,
                    args
                })
                try {
                    const response = await axios.get(`http://localhost:3000/users/${parentValue.companyId}`)
                    console.log(response)
                    return response.data
                } catch (error) {
                    return console.log(error)
                }
            }
        }
    }
})

const RootQuery = new GraphQLObjectType({
    name: 'RootQueryType',
    fields: {
        user: {
            type: UserType,
            args: {
                id: {
                    type: GraphQLString
                }
            },
            async resolve(parentValue, args) {
                try {
                    const response = await axios.get(`http://localhost:3000/users/${args.id}`)
                    return response.data
                } catch (error) {
                    return console.log(error)
                }
            }
        }
    }
})

export const schema = new GraphQLSchema({
    query: RootQuery
})
我的疑问


您的公司用户解析程序正在从用户终结点而不是公司终结点获取数据。谢谢!我知道这是一件愚蠢的事,哈哈。。。
import express from 'express'
import expressGraphQL from 'express-graphql'
import {
    schema
} from './schema/schema'

const app = express()

app.use('/graphql', expressGraphQL({
    schema,
    graphiql: true
}))

app.listen(4000, () => {
    console.log('server is listening')
})
import axios from 'axios'
import {
    GraphQLObjectType,
    GraphQLString,
    GraphQLInt,
    GraphQLSchema,
} from 'graphql'

const CompanyType = new GraphQLObjectType({
    name: 'Company',
    fields: {
        id: {
            type: GraphQLString
        },
        name: {
            type: GraphQLString
        },
        description: {
            type: GraphQLString
        }
    }
})

const UserType = new GraphQLObjectType({
    name: 'User',
    fields: {
        id: {
            type: GraphQLString
        },
        firstName: {
            type: GraphQLString
        },
        age: {
            type: GraphQLInt
        },
        company: {
            type: CompanyType,
            async resolve(parentValue, args) {
                console.log({
                    parentValue,
                    args
                })
                try {
                    const response = await axios.get(`http://localhost:3000/users/${parentValue.companyId}`)
                    console.log(response)
                    return response.data
                } catch (error) {
                    return console.log(error)
                }
            }
        }
    }
})

const RootQuery = new GraphQLObjectType({
    name: 'RootQueryType',
    fields: {
        user: {
            type: UserType,
            args: {
                id: {
                    type: GraphQLString
                }
            },
            async resolve(parentValue, args) {
                try {
                    const response = await axios.get(`http://localhost:3000/users/${args.id}`)
                    return response.data
                } catch (error) {
                    return console.log(error)
                }
            }
        }
    }
})

export const schema = new GraphQLSchema({
    query: RootQuery
})