"message": "Unexpected token < in JSON at position 0", "stack": "SyntaxError: Unexpected token < in JSON at position 0"

时间:2021-05-14 11:08:52

标签: graphql

const express = require('express');
const {graphqlHTTP} = require('express-graphql');
const schema = require('./schema/schema');

const app = express();

app.get('/graphql', graphqlHTTP({
    graphiql:true,
    schema: schema
}))

app.listen(4000,()=>{
    console.log("listining to port 4000..")
}) 

const graphql = require('graphql');

const{
    GraphQLObjectType,
    GraphQLID,
    GraphQLString,
    GraphQLInt,
    GraphQLSchema
} = graphql

const UserType = new GraphQLObjectType({
    name: 'user',
    description: 'Documentation for User...',
    fields: ()=>({
        id: {type: GraphQLString},
        name: {type: GraphQLString},
        age: {type: GraphQLInt}
    })
});

const RootQuery = new GraphQLObjectType({
    name: 'RootQueryType',
    description: 'description',
    fields: {
        user: {
            type: UserType,
            args: {id: {type: GraphQLString}},
            resolve(parent,args){
                let user = {
                    id: '345',
                    age: 34,
                    name: 'Aman'
                }
                return user;
            }      
        }
    }
});

module.exports = new GraphQLSchema({
    query: RootQuery
})

以上是我的代码,我收到此错误:

"message": "位置 0 处的 JSON 中的意外标记 <",
"stack": "SyntaxError: Unexpected token < in JSON at position 0"

谁能告诉我我是如何解决这个错误的?提前致谢。

1 个答案:

答案 0 :(得分:0)

这似乎是您在客户端应用程序中看到的错误?附带说明一下,您没有添加很多细节,说明您正在做什么以获取此错误,您在哪里看到它,以及您认为导致它的原因,所以我只能离开您提供的内容就您的设置而言。

这似乎是您从您期望 JSON 的服务器收到 HTML 响应。通常,使用 GraphQL 可能会发生这种情况,因为您发送的是 GET 请求(这可能会启动 GraphiQL 资源管理器)而不是 POST 请求。

您的 GraphQL 客户端代码应该发出一个 POST 请求,并且您应该确保它发送一个标头来接受 Duration 响应。