未调用特定字段的GraphQL解析器
为了便于学习,我编写了简单的GraphQL模式和解析器,但我无法理解为什么我的代码能按预期工作。我将Prisma用于ORM,并使用未调用特定字段的GraphQL解析器,graphql,prisma,express-graphql,Graphql,Prisma,Express Graphql,为了便于学习,我编写了简单的GraphQL模式和解析器,但我无法理解为什么我的代码能按预期工作。我将Prisma用于ORM,并使用express graphql和graphql import来编写API type User { id: ID! name: String! } type Link { id: ID! url: String! user: User! } type Query { links(id: ID!): [Link!]! } //解析器 常量链接
express graphql
和graphql import
来编写API
type User {
id: ID!
name: String!
}
type Link {
id: ID!
url: String!
user: User!
}
type Query {
links(id: ID!): [Link!]!
}
//解析器
常量链接=异步(根、参数、ctx)=>{
const links=等待ctx.prisma.links({
其中:{
使用者{
id:args.id
}
}
}
}
//用于'Link'类型的解析器
const user=async(root、args、ctx)=>{
const user=wait ctx.prisma.link({id:parent.id}).user()
返回用户
}
//省略了'url'和'id'的字段解析器`
module.exports={
用户
}
有了这些代码,当我查询
链接时,我希望得到id
,url
,user
字段,但是当我发送查询时,它返回null
和user
字段。这意味着,如果我在服务器端检查,user
字段的解析程序根本不会被调用。这有什么问题吗is?请告诉我什么结果来自服务器端?什么结果来自prisma链接?您是如何编写user
resolver的?能否共享代码片段,其中所有解析程序都被合成/组合到单个对象中?另外,当数据可以从中返回时,为user
字段编写自定义解析程序的原因是什么链接
解析器?