Переменная требуемого типа не указана - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь создать связь в моей базе данных 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 выдает следующую ошибку:

"Переменная\ "$ id \" необходимого типа \ "String! \" не было предоставлено. "

В моем файле 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 голосов
/ 18 октября 2018

@ BehemothDan, как вы называете эту мутацию?Вы используете react-apollo?Если да, позвольте мне дать вам пример того, как вы должны справиться с этим.Например, если у вас есть форма для создания этого UserRecipeRelation.У вас есть Mutation компонент из react-apollo.На этом Mutation у вас есть renderProps CreateUserRecipeRelation, который вы можете передать функции на onSubmit.В этой функции вы передаете свои переменные:

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

Надеюсь, это поможет!:)

...