Neo4j 对于GRAND stack,在编写自己的自定义密码查询时,如何使用Apollo Server上下文中存储的用户对象?

Neo4j 对于GRAND stack,在编写自己的自定义密码查询时,如何使用Apollo Server上下文中存储的用户对象?,neo4j,grandstack,Neo4j,Grandstack,我正在使用GRAND stack编写一个用于突变的自定义密码查询。但是,从我正在编写的cypher查询访问Apollo服务器上下文中存储的用户对象时遇到问题 因此,与其这样做 createUser(id: String): User @cypher( statement: "CREATE (u:User {id: $id}) RETURN u" ) 我想做一些类似的事情 createUser: User @cypher( statement:

我正在使用GRAND stack编写一个用于突变的自定义密码查询。但是,从我正在编写的cypher查询访问Apollo服务器上下文中存储的用户对象时遇到问题

因此,与其这样做

createUser(id: String): User
    @cypher(
      statement: "CREATE (u:User {id: $id}) RETURN u"
    )

我想做一些类似的事情

createUser: User
    @cypher(
      statement: "CREATE (u:User {id: context.user.id}) RETURN u"
    )


Apollo上下文不会以本机方式传递给cypher查询。 因此,您必须根据需要编写相应的解析器

你能试试这样的东西吗

export const typeDefs = `
  ...
  type Mutation {
    ...
    createUser: User  @cypher(statement: "CREATE (u:User {id: context.user.id})  RETURN u")
     ...
  }`

export const resolvers = {
  ...
  Mutation: {
    ...
    createUser(object, params, ctx, resolveInfo) {
      let newParms = params;
      params.context = ctx;
      return neo4jgraphql(object, newParms, ctx, resolveInfo, true);
    }
    ...
  }
}