无法返回 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 突变中检索相关数据的主要内容,如果未能解决你的问题,请参考以下文章
无法为 mikro orm graphql 中的不可空字段返回 null
graphql序列化数据加载器问题,对于不可为null的字段[重复项],无法返回null
Apollo GraphQL“不能为不可为空的字段 Mutation.createUser 返回 null”