Ошибка клиентского сервера GraphQL / Prisma: переменная «$ data» не может быть типом ввода «LinkCreateInput!». (строка 1, столбец 18) - PullRequest
0 голосов
/ 15 января 2019

Я следую учебному пособию How To GraphQL Node.js и нахожусь в части "Соединение сервера и базы данных с привязками Prisma". Я думаю, что у меня все настроено правильно в соответствии с руководством, но когда я пытаюсь выполнить пост-мутацию в GraphQL Playground, он выдает эту ошибку:

{
  "data": null,
  "errors": [
    {
      "message": "Variable '$data' cannot be non input type 'LinkCreateInput!'. (line 1, column 18):\nmutation ($data: LinkCreateInput!) {\n                 ^",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "post"
      ]
    }
  ]
}

Я даже не уверен, что я должен получить обратно, но когда я делаю запрос "информация", я получаю информацию из моего файла index.js: "данные": { "info": "Это API для клона Hacker News !, Get Rigth Witcha, imma get you !!" }

Итак, я знаю, что информационный запрос работает. Когда я пытаюсь выполнить запрос Feed, я получаю эту ошибку на игровой площадке GraphQl:

{
  "data": null,
  "errors": [
    {
      "message": "Cannot query field 'links' on type 'Query'. (line 2, column 3):\n  links {\n  ^",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "feed"
      ]
    }
  ]
}

Таким образом, работает только информационный запрос, а остальные продолжают отправлять сообщение об ошибке. Я так растерялся и очень хочу получить больше навыков с GRaohQL. Когда я захожу в свой Prisma Client, я не могу получить доступ к своему Сервису. Они только позволяют мне посмотреть список моих серверов. У меня есть скриншоты консоли, но у меня недостаточно репутации, чтобы опубликовать их с этим вопросом.

Я попытался пройти каждый шаг и убедиться, что мой код правильный. Я также проверил git-репозиторий HowToGraphql, однако у них есть только готовый серверный код, и я хотел бы построить мой с нуля, чтобы их код не сильно помог. Я не уверен, что проблема в клиенте Prisma или в моем коде. Любая обратная связь или помощь будет принята с благодарностью !!

Вот ссылка на репозиторий: https://github.com/thelovesmith/HckrNws-Cln-GrphQL-Srvr

Пожалуйста, помогите !!

SRC / index.js:

const { GraphQLServer } = require('graphql-yoga')
const { prisma } = require('./generated/prisma-client/index')
// Revolvers
const resolvers = {
    Query: {
        info: () =>  'This is the API for the Hacker News clone!, 
Get Rigth Witcha, imma get ya !!' ,
        feed: (root, args, context, info) => {
            return context.prisma.links()
        }
    },
    Mutation: {
        post : (root, args, context) => {
            return context.prisma.createLink({
                url: args.url,
                description: args.description,
            })
        }
    },
}
//Server
const server = new GraphQLServer({
    typeDefs: './src/schema.graphql',
    resolvers,
    //initializing context object that is being passed to each 
resolver 
    context: { prisma },
})
server.start(() => console.log('Server is running  on 
http://localhost:4000'))

schema.graphql:

type Query {
  info: String!
  feed: [Link!]!
}

type Mutation {
  post(url: String!, description: String!): Link!
}

type Link {
  id: ID!
  description: String!
  url: String!
}

prisma.yml:

# The HTTP endpoint for your Prisma API
#endpoint: ''
endpoint: https://us1.prisma.sh/avery-dante-hinds/hckrnws/dev

# Points to the file that contains your datamodel
datamodel: datamodel.prisma

# Specifies language & location for the generated Prisma client
generate:
  - generator: javascript-client
    output: ../src/generated/prisma-client

datamodel.prisma:

type Link { 
    id: ID! @ unique
    createdAt: DateTime!
    description: String!
    url: String!
}

UPDATE

Когда я запускаю Prisma Deploy, я могу получить сообщение об ошибке:

    ERROR: Syntax error while parsing GraphQL query. Invalid input "{ 
 \n    id: ID! @ ", expected ImplementsInterfaces, DirectivesConst or 
FieldDefinitions (line 1, column 11):
type Link {
      ^

{
  "data": {
    "deploy": null
  },
  "errors": [
    {
      "locations": [
        {
          "line": 2,
          "column": 9
        }
      ],
      "path": [
        "deploy"
      ],
      "code": 3017,
      "message": "Syntax error while parsing GraphQL query. Invalid 
input \"{ \\n    id: ID! @ \", expected ImplementsInterfaces, 
DirectivesConst or FieldDefinitions (line 1, column 11):\ntype Link { 
\n          ^",
      "requestId": "us1:cjr0vodzl2ykt0a71zuql5544"
    }
  ],
 "status": 200
}

1 Ответ

0 голосов
/ 19 января 2019

Похоже, что в вашей модели данных есть опечатка, она должна быть @unique вместо @ unique.

...