GraphQL - данные не могут быть не входного типа ... Конфиг не работает? - PullRequest
0 голосов
/ 28 апреля 2020

Кажется, у меня возникла небольшая проблема, которую я не могу понять.

Я создал новый тип Challenge в моем datamodel.prisma:

type Challenge {
    id: ID! @id
    createdAt: DateTime! @createdAt
    updatedAt: DateTime! @updatedAt
    completed: Boolean! @default(value: false)
    title: String!
}

My Mutation Resolver

# import * from './generated/prisma.graphql'

type Mutation {
    createChallenge(title: String!): Challenge!
}

prisma.graphql читает это:

type Mutation {
  createChallenge(data: ChallengeCreateInput!): Challenge!
}

input ChallengeCreateInput {
  id: ID
  completed: Boolean
  title: String!
}

И я использую игровую площадку для создания записей БД (проблема сохраняется, когда я создаю интерфейсные логи c для этого):

mutation {
  createChallenge(title: "Test Entry") {
    id
    title
  }
}

И, наконец, мой logi на стороне сервера c:

async createChallenge(parent, args, ctx, info) {
    console.log(args);
    const challenge = ctx.db.mutation.createChallenge(
        {
            data: {
                ...args,
            },
        },
        info
    );
    console.log(challenge);
    return challenge;
},

Затем я получаю следующую ошибку на детской площадке:

{
  "data": null,
  "errors": [
    {
      "message": "Variable '$_v0_data' cannot be non input type 'ChallengeCreateInput!'. (line 1, column 22):\nmutation ($_v0_data: ChallengeCreateInput!) {\n                     ^",
      "locations": [],
      "path": [
        "createChallenge"
      ]
    }
  ]
}

Я не понимаю, откуда приходит это сообщение. Похоже, что данные правильно обрабатываются в моей серверной логике c путем распределения в data.

Вчера я столкнулся с проблемой, когда мой серверный лог c не обновлялся, даже после обновления и сброса модели данных с помощью prisma reset. У меня было поле в моей модели данных challenge, которое я удалил, но при отправке мутации сервер все еще допустил ошибку, говоря, что отсутствует это поле. Может ли это иметь какое-либо отношение к этому?

Может быть важно знать, что обычно, каждый раз, когда вы запускаете prisma deploy и обновлять нечего, вам сообщается nothing to update. На данный момент, каждый раз, когда я запускаю prisma deploy, одни и те же поля добавляются и удаляются. Это должно происходить только один раз.

Как мне заставить эту Мутацию работать?

1 Ответ

0 голосов
/ 08 мая 2020

Скорее всего, ваша проблема связана с полем ID. Вы определили идентификатор, который будет автоматически сгенерирован в модели Prisma, и даже если вы задаете это поле в типе ввода. Итак, удалите поле ID из ввода и попробуйте.

Надеюсь, это поможет! Дайте мне знать!

...