同じ行で毎回EOFエラーが発生し、コードが何度も変更され、以前のバージョンのgraphql
にさえ低下しましたが、肯定的な結果はありません。私のコードは次のとおりです。
const graphql = require('graphql')
const _ = require('lodash')
const {
GraphQLObjectType,
GraphQLString,
GraphQLInt,
GraphQLSchema
} = graphql
const users = [
{id: '1', firstName: 'Ansh', age: 20},
{id: '2', firstName: 'Ram', age: 21},
{id: '3', firstName: 'Sham', age: 20}
]
const UserType = new GraphQLObjectType({
name: 'User',
fields: {
id: {type: GraphQLString},
firstName: {type: GraphQLString},
age: {type: GraphQLInt}
}
})
const RootQuery = new GraphQLObjectType({
name: 'RootQueryType',
fields: {
user: {
type: UserType,
args: {id: {type: GraphQLString}},
resolve(parentValue, args) {
return _.find(users, {id: args.id})
}
}
}
})
module.exports = new GraphQLSchema({
query: RootQuery
})
エラーは:
{
"errors": [
{
"message": "Syntax Error GraphQL request (30:1) Unexpected <EOF>\n\n29: \n30: \n ^\n",
"locations": [
{
"line": 30,
"column": 1
}
]
}
]
}
問題は、渡したクエリが空である可能性があるためです。
例えば:
curl -X POST http://localhost:4000/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ user { id } }"}'
正常に動作します。
しかし、次のようなものを作成した場合:
curl -X POST http://localhost:4000/graphql \
-H "Content-Type: application/json" \
-d '{"query": ""}'
予期しない<EOF>が表示されます)
また、 GraphQL行末の問題 も確認してください。
実際のクエリがないため、予期しないEOF(ファイルの終わり)が返されます。
GraphiQLを使用していると推測します(EOFメッセージは30行目を示しているため););ブラウザでGraphiQLの左側のパネルにクエリを追加する必要があります。RootQuery
に準拠したものお気に入り:
{
user(id: "1") {
id,
firstName,
age
}
}