无法返回 null 或不可为 null 的字段 User.Role 无法从 prisma 突变中检索相关数据

Posted

技术标签:

【中文标题】无法返回 null 或不可为 null 的字段 User.Role 无法从 prisma 突变中检索相关数据【英文标题】:Cannot Return null or non-nullable field User.Role not able to retrive relation data from prisma mutation 【发布时间】:2020-01-16 22:15:22 【问题描述】:

我正在尝试在非常基本的事情上玩arroud APOLO SERVER、GRAPHQL PRISMA 和struct .. 我无法从简单查询中返回关系数据..

当我尝试添加用户和角色 ID 时.. 我无法取回角色信息

我在用什么?

"dependencies": 
    "apollo-server": "^2.9.3",
    "bcryptjs": "^2.4.3",
    "graphql": "^14.5.5",
    "graphql-import": "^0.7.1",
    "jsonwebtoken": "^8.5.1",
    "prisma-client-lib": "^1.34.8"
  

对于我的简单查询;

mutation

  createUser(name:"tst",
  roleId:"ck0lx425n00z50782jgcl4qg8")
  
    name
    role
code

Graphql 返回错误提示


  "errors": [
    
      "message": "Cannot return null for non-nullable field User.role.",
      "locations": [
        
          "line": 4,
          "column": 5
        
      ],
      "path": [
        "createUser",
        "role"
      ],
      "extensions": 
        "code": "INTERNAL_SERVER_ERROR",
        "exception": 
          "stacktrace": [
            "Error: Cannot return null for non-nullable field User.role.",

GAPHQL SHCHEMA

scalar DateTime

type User 
  id: ID! 
  name: String! 
  role:Role!
  createdAt:DateTime 



 type Role
   id:ID!,
   code:String!
   users:[User!]!
 
type Query 
  users:[User!]!
  user:User!
  roles:[Role!]!
  role:Role!


type Mutation 
  createRole(code:String!):Role!
  createUser(name:String!,roleId:String!):User! 

 

查询

function users(parent, args, context) 
    return context.prisma.uses()


function roles(parent,args,context)
    return context.prisma.roles()

变异

function  createRole(parent,args,context,info)
     return context.prisma.createRole(
         code:args.code
     );

function  createUser(parent,args,context,info)
    return context.prisma.createUser(
        name:args.name,
        role:
            connect:id:args.roleId
        
    ,info);



棱镜数据模型

type User 
  id: ID! @id 
  name:String! 
  createdAt:DateTime @createdAt
  role:Role! @relation(Name:"Role Assinged To User")



type Role
  id:ID! @id
  code:String! 
  users:[User!]! @relation(Name:"Role Assinged To User")


有人可以帮助我吗,如何解决这个问题..我知道这将是我错过的基本问题..我很难理解?我错过了一些非常基本的东西吗?

【问题讨论】:

【参考方案1】:

创建角色时,您还需要指定用户,因为您将其作为可能导致错误的要求

【讨论】:

以上是关于无法返回 null 或不可为 null 的字段 User.Role 无法从 prisma 突变中检索相关数据的主要内容,如果未能解决你的问题,请参考以下文章

无法为graphql中的不可空字段返回null

无法为 mikro orm graphql 中的不可空字段返回 null

graphql序列化数据加载器问题,对于不可为null的字段[重复项],无法返回null

Apollo GraphQL“不能为不可为空的字段 Mutation.createUser 返回 null”

GraphQL 查询返回错误“不能为不可为空的字段返回 null”

Schema graphql 错误给出“不能为不可为空的字段 Organisation.id 返回 null”为啥?