Graphql 运行mutation以存储新用户';s后返回错误:变量'$数据';类型的期望值

Graphql 运行mutation以存储新用户';s后返回错误:变量'$数据';类型的期望值,graphql,prisma,express-graphql,prisma-graphql,Graphql,Prisma,Express Graphql,Prisma Graphql,我使用graphql瑜伽和prisma制作了用户和post数据模型。一个用户可以有许多帖子 我确实喜欢下面。现在根据addPostmutation,我想添加与当前用户相关的新帖子。但是graphql服务器返回以下错误 但当我运行mutaion时: mutation { addPost(title:"aa", body: "bb"){ id title author { id email } }

我使用graphql瑜伽和prisma制作了用户和post数据模型。一个用户可以有许多帖子 我确实喜欢下面。现在根据
addPost
mutation,我想添加与当前用户相关的新帖子。但是graphql服务器返回以下错误

但当我运行mutaion时:

mutation {
  addPost(title:"aa", body: "bb"){
    id
    title
    author {
      id
      email
    }
  }
}
告诉我这个错误:为什么会发生这种情况?我怎样才能解决这个问题

  "errors": [
    {
      "message": "Error: Variable '$data' expected value of type 'PostCreateInput!' but got: {\"title\":\"aa\",\"body\":\"bb\",\"author\":{\"id\":\"5f036dc924aa9a00070c4771\",\"email\":\"bb@bb.com\"}}. Reason: 'author.id' Field 'id' is not defined in the input type 'UserCreateOneInput'. (line 1, column 11):\nmutation ($data: PostCreateInput!)
数据模型.prisma

type User {
  id: ID! @id
  email: String! @unique
  password: String!

}

type Post {
  id: ID! @id
  title: String!
  body: String!
  author_id: Int
  author:     User!   @relation(link: INLINE,fields: [authorId], references: [id])
  createdAt: DateTime @createdAt
  updatedAt: DateTime @updatedAt
}
模式:

type User {
    id: ID!
    email: String!
}

type Post {
    id: ID!
    title: String!
    body: String!
    author: User!
}

input UserInput {
    id: ID!
    email: String!
}

type Mutation {
    addPost(title: String!, body: String!) : Post!
}
分解器

   addPost: async (parent, { title, body }, { prisma, me }) => {
      console.log(me);
      try {
        const post = await prisma.createPost({
          title,
          body,
          author: {id: me.user.id, email: me.user.email}
        });
        return post;

      } catch (error) {
        throw new Error(error);

      }
    }
应该是:

const post = await prisma.createPost({
  title,
  body,
  author: {
    connect: { id: me.user.id, email: me.user.email }
  }
});
这将向现有用户添加帖子


另外,如果您刚开始使用Prisma,我建议您

谢谢,稍后我将试用Prisma 2。我确实喜欢你,但我有一个新错误:
“错误:你为用户上的唯一选择器提供了多个字段。如果你想要这种行为,可以使用多个查询并将字段与和/或
组合,只需使用id或电子邮件。不要同时使用两者。一个唯一标识符就足够了