未提供所需类型的变量

时间:2018-10-18 05:39:13

标签: neo4j graphql apollo

我正在尝试在我的Neo4j数据库中创建一个带有GraphQL突变的关系。除了导致问题的其他突变以外,我还有许多其他突变已在起作用。看起来像这样:

mutation(
    $id: String!,
    $recipe: String!,
    $date: String!
) {
    CreateUserRecipeRelation(id:$id, recipe:$recipe, date:$date) {
            id
        recipe {
        name
      }
  }    
}

我要传递以下参数:

{"id": "google-oauth2|yyyyremovedauthstuffyyyy", "recipe": "baked spaghetti", "date": "10/10/2018"}

但是GraphQL游乐场会引发以下错误:

未提供所需类型\“ String!\”的变量\“ $ id \”。“

在我的schema.graphql文件中,定义了以下内容:

  CreateUserRecipeRelation (
    id: String
    recipe: String
    date: String
  ): User @cypher(statement:
    "MATCH (r:Recipe{name:$recipe}), (u:User{id:$id}) CREATE (r)-[c:Created_By{date:$date}]->(u) RETURN r,c,u")

如果我直接在Neo4j中运行该密码查询,它就可以正常工作。在同一项目中,我目前正在使用其他5或6个创建关系的突变,但这使我停下来。

更新:

这是我目前正在使用的一种变异,因此您可以看到结构上的相似之处:

  CreateIngredientRelation (
    name: String
    recipe: String
    quantity: String
  ): Ingredient @cypher(statement:
    "MATCH (r:Recipe{name:$recipe}), (i:Ingredient{name:$name}) CREATE (r)-[c:Contains{quantity:$quantity}]->(i) RETURN r,c,i")

这个作品效果很好,并与之建立了无数的关系。这就是为什么我感到困惑。如果他们俩都不起作用,那么尝试并提出我认为的解决方案会更容易。

1 个答案:

答案 0 :(得分:1)

@BehemothDan,您如何称呼这种突变?您在使用react-apollo吗?如果是,请允许我为您提供一个示例,说明如何处理此问题。 例如,如果您有一个表单来创建此UserRecipeRelation。您拥有Mutation中的react-apollo组件。在Mutation renderProps上的CreateUserRecipeRelation上,您可以传递给onSubmit上的函数。在此函数中,您传递变量:

UserRecipeRelation({ variables: { id: 'your id', recipe: 'bla bla', date: '12/12/18' } });

希望有帮助! :)