我正在尝试在最基本的方面播放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);
}
PRISMA DATAMODEL
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")
}
有人可以帮我吗,这是怎么解决的..我知道这将是我最想念的基础..我正在努力去理解吗?我缺少一些非常基本的东西吗?
答案 0 :(得分:-1)
创建角色时,您还需要指定用户,因为您将其设为可能导致错误的要求