Node.js Apollo错误:GraphQL错误:变量';输入';已强制非Null类型为Null值';创建快速测试输入';
我正在编写一个NodeJS应用程序(我需要每隔5分钟从restful提要填充dynamoDB) 由于我遇到的困难,我创建了一个非常简单的API,名为quicktestNode.js Apollo错误:GraphQL错误:变量';输入';已强制非Null类型为Null值';创建快速测试输入';,node.js,Node.js,我正在编写一个NodeJS应用程序(我需要每隔5分钟从restful提要填充dynamoDB) 由于我遇到的困难,我创建了一个非常简单的API,名为quicktest schema { query: Query mutation: Mutation subscription: Subscription } type Mutation { createQuicktest(input: CreateQuicktestInput
schema {
query: Query
mutation: Mutation
subscription: Subscription
}
type Mutation {
createQuicktest(input: CreateQuicktestInput!): quicktest
deleteQuicktest(input: DeleteQuicktestInput!): quicktest
updateQuicktest(input: UpdateQuicktestInput!): quicktest
}
type Query {
getQuicktest(id: ID!, title: String!): quicktest
listQuicktests(filter: TableQuicktestFilterInput, limit: Int, nextToken: String): quicktestConnection
}
type Subscription {
onCreateQuicktest(email: String, id: ID, phoneno: String, title: String): quicktest @aws_subscribe(mutations : ["createQuicktest"])
onDeleteQuicktest(email: String, id: ID, phoneno: String, title: String): quicktest @aws_subscribe(mutations : ["deleteQuicktest"])
onUpdateQuicktest(email: String, id: ID, phoneno: String, title: String): quicktest @aws_subscribe(mutations : ["updateQuicktest"])
}
type quicktest {
email: String
id: ID!
phoneno: String
title: String
}
type quicktestConnection {
items: [quicktest]
nextToken: String
}
input CreateQuicktestInput {
email: String
id: ID!
phoneno: String
title: String!
}
input DeleteQuicktestInput {
id: ID!
title: String!
}
input TableBooleanFilterInput {
eq: Boolean
ne: Boolean
}
input TableFloatFilterInput {
between: [Float]
contains: Float
eq: Float
ge: Float
gt: Float
le: Float
lt: Float
ne: Float
notContains: Float
}
input TableIDFilterInput {
beginsWith: ID
between: [ID]
contains: ID
eq: ID
ge: ID
gt: ID
le: ID
lt: ID
ne: ID
notContains: ID
}
input TableIntFilterInput {
between: [Int]
contains: Int
eq: Int
ge: Int
gt: Int
le: Int
lt: Int
ne: Int
notContains: Int
}
input TableQuicktestFilterInput {
email: TableStringFilterInput
id: TableIDFilterInput
phoneno: TableStringFilterInput
title: TableStringFilterInput
}
input TableStringFilterInput {
beginsWith: String
between: [String]
contains: String
eq: String
ge: String
gt: String
le: String
lt: String
ne: String
notContains: String
}
input UpdateQuicktestInput {
email: String
id: ID!
phoneno: String
title: String!
}
in my node code i call
function callAppsync(){
console.log('Calling client.hydrate');
client.hydrated().then(function (client) {
const nqt = {
"id": "4523adfg;kdjlsgwrtydsfglk",
"title": "Hector",
"email": "Hector@email.org.uk",
"phoneno": "123456789"
}
const variables ={
}
client.mutate({mutation: mutations.createQuicktest, variables: {CreateQuicktestInput: nqt} })
.then(function log(data) {
console.log('processing then');
data = JSON.stringify(data);
data = JSON.parse(data);
if (data.data.listQuicktests) {
console.log('(Query Data) All Posts ----------->', data.data.listPosts.items);
} else {
console.log("Error while fetching data");
}
})
.catch(console.error);
});
};
callAppsync();
my mutations file is as follows
/* eslint-disable */
// this is an auto generated file. This will be overwritten
var gql = require('graphql-tag');
module.exports = {
createQuicktest: gql(`mutation CreateQuicktest($input: CreateQuicktestInput!) {
createQuicktest(input: $input) {
id
title
email
phoneno
}
}`),
updateQuicktest: gql(`mutation UpdateQuicktest($input: UpdateQuicktestInput!) {
updateQuicktest(input: $input) {
id
title
email
phoneno
}
}`),
deleteQuicktest: gql(`mutation DeleteQuicktest($input: DeleteQuicktestInput!) {
deleteQuicktest(input: $input) {
id
title
email
phoneno
}
}`)
};
我可以运行简单的查询来检索所有记录,但是,每当我尝试参数化查询时,它就会失败,并出现上述错误
显然,我遗漏了一些东西,您的帮助将不胜感激。我似乎遗漏了调用代码块。我认为您在客户端中的变量。mutate call是错误的。是否应该是“输入”而不是CreateQuickTestInput<代码>客户端.mutate({mutation:mutations.createQuicktest,variables:{input:nqt}}})我似乎错过了调用代码块。我认为客户端中的变量.mutate调用是错误的。是否应该是“输入”而不是CreateQuickTestInput<代码>客户端.mutate({mutation:mutations.createQuicktest,变量:{input:nqt}}})