我一直在阅读有关graphql的所有内容,并且陷入了解析器函数中的误解实现:
这是我糟糕的解决方案,我得到的是一个未定义的论点:
const jobResolvers = {
Query: {
job(id) {
//code where I call the db ODM function
}
}
}
看了几篇文章后我修复了它: (了解析构函数部分,但不是为什么使用下划线_paremeter)
const jobResolvers = {
Query: {
job(_,{id}) {
//code where I call the db ODM function
}
}
}
在这里你可以看到这两个非常好的解释性帖子运气不好他们不解释,为什么它们是解析器功能中的两个参数(这是一个大问题)
graphql服务器端的实现 getAuthor(_,{id})函数的签名有两个参数,但只有第二个参数是使用的,它只适用于 id 参数
另一个关于GraphQL的解释( GraphQL服务器如何将查询转换为响应?) author(root, args)函数的签名有两个参数,但只使用第二个参数,该函数只能用 args 参数( root永远不适合我)
答案 0 :(得分:0)
GraphQL解析器具有特定的功能签名。 resolver(obj, args, context)
您想使用args
,因此您需要填充obj
以便正确传递参数。一般来说,人们使用_
来表示人们不需要但必须在那里满足签名的参数。