Javascript 返回null的GraphQL架构相关查询
我正在学习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
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
})