GraphQL Prisma 客户端连接不起作用

Posted

技术标签:

【中文标题】GraphQL Prisma 客户端连接不起作用【英文标题】:GraphQL Prisma Client connect not working 【发布时间】:2020-04-17 05:18:19 【问题描述】:

我正在按照https://www.howtographql.com/graphql-js/0-introduction/ 此处的教程使用 GraphQL

但是,我不能让嵌套对象工作,它总是有空值

下面是突变和架构的快照

链接必须通过postedBy链接到用户

源代码在这个公共仓库https://github.com/cuongchau93/hello-graphql-express

我已经被困了2天,所以我决定在这里问。 任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

很难回答您的具体问题,但如果它有助于删除 info 对象的 postedBy 部分(返回什么)可能会解决错误消息。

这可能无法解决您的问题,但可能会暴露一个更深层次的问题,您可以通过自己的方式解决这个问题。

mutation 
  post(
    url: "www.graphqlconf.org"
    description: "An awesome GraphQL conference!"
  ) 
    id
  

我知道的帮助不大,虽然它可能会让你走得更远。

生成 GraphQL Schema 也可能有很大帮助,因为它允许您遍历每个节点的输入、连接等。

将以下内容添加到您的 prisma.yml 文件中将使架构能够由 Prisma 生成:

generate:
  - generator: graphql-schema
    output: ./generated/prisma.graphql

在我看来,您有一个相当复杂的关系(用户和链接之间),这可能会在您生成 graphql 架构时得到澄清。

【讨论】:

感谢您的回答,实际上我确实注意到删除postedBy 会得到成功的响应。但是,问题是为什么即使我让用户链接到链接也没有建立连接,(用户通过标头中的不记名令牌链接)但新创建的链接也有用户为空(当返回错误时试图获得发布者) 我明白了,这行const userId = getUserId(context) 设置的userId 是null,还是棱镜createLink 函数返回的响应为null? 抱歉延迟响应,getUserId 确实返回预期值问题是虽然我遵循 prisma 语法,但postedBy 没有链接到该用户对象事件,即 let temp = context.prisma.createLink( url: args.url, description: args.description, postedBy: connect: id: userId , , info) 如file

以上是关于GraphQL Prisma 客户端连接不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在节点应用程序中使用 prisma graphql 订阅

如何在 docker 容器中连接 graphql 和 prisma?

Prisma、GraphQL 和 Apollo 中具有突变的数据关系和连接类型

从 prisma 生成的客户端访问 graphql 服务器中的数据类型

markdown 来自graphql-yoga(后端)的prisma服务器连接测试

GraphQL(Prisma)突变数据未定义