GraphQL/Prisma 客户端服务器错误:变量“$data”不能是非输入类型“LinkCreateInput!”。 (第 1 行,第 18 列)
Posted
技术标签:
【中文标题】GraphQL/Prisma 客户端服务器错误:变量“$data”不能是非输入类型“LinkCreateInput!”。 (第 1 行,第 18 列)【英文标题】:GraphQL/Prisma Client Server Error: Variable '$data' cannot be non input type 'LinkCreateInput!'. (line 1, column 18) 【发布时间】:2019-06-09 17:16:00 【问题描述】:我正在学习如何使用 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": "这是 Hacker News 克隆的 API!,Get Rigth Witcha,imma get ya !!"
所以,我知道信息查询正在运行。当我尝试进行 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"
]
]
因此,只有 Info 查询有效,其他查询不断发回错误。我很迷茫,我真的很想用 GRaohQL 获得更多技能。当我转到我的 Prisma Client 时,我无法访问我的服务。他们只让我查看我的服务器列表。我有控制台的屏幕截图,但我没有足够的声誉来发布这个问题。
我已尝试检查每个步骤并确保我的代码正确无误。我还检查了 HowToGraphql git 存储库,但是他们只有完整的服务器代码,我想从头开始构建我的代码,所以他们的代码没有多大帮助。我不确定问题出在 Prisma Client 还是我的代码上。任何反馈或帮助将不胜感激!
这里是存储库的链接: 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!
更新
当我运行 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
【问题讨论】:
嘿,我只是在检查你的项目。您的 Prisma API 似乎有问题。prisma deploy
运行成功了吗?
否则代码看起来不错????
@nburk 嘿,谢谢!最初当我运行 prisma deploy 时它运行良好,但我再次运行它并收到一条错误消息
你能把错误贴出来吗?
@nburk 我将它添加到上述问题的末尾。在更新副标题下。非常感谢您的帮助
【参考方案1】:
您的数据模型中似乎有错字,应该是 @unique
而不是 @ unique
。
【讨论】:
以上是关于GraphQL/Prisma 客户端服务器错误:变量“$data”不能是非输入类型“LinkCreateInput!”。 (第 1 行,第 18 列)的主要内容,如果未能解决你的问题,请参考以下文章
GraphQL/Prisma 订阅仅针对 DELETE 触发