Я следую учебному пособию 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
}