【问题标题】:I got error with graphql resolver in express我在 express 中遇到 graphql 解析器错误
【发布时间】:2020-12-05 00:09:46
【问题描述】:

我目前正在尝试使用 graphql,但出现此错误 (不能为不可为空的字段 Person.name 返回 null。) 我已尝试修复它,但我无法帮助我

App.js

import resolvers from './graphql/resolvers';

const app = express();
const Router = express.Router();

app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));



app.use('/graphql', graphqlHTTP({
    schema: schema,
    rootValue: resolvers,
    graphiql: true
}));



export default app;

schema.js

import { buildSchema } from 'graphql';

const schema = buildSchema(`
    type Person {
        name: String!
        age: Int!
        gender: String!
    }

    type Query {
        people: [Person]!
        person(id: Int!): Person
    }
`);

export default schema;

resolvers.js

import { people, getById } from '../fakedb';

const resolvers = {
    Query {
        people: () => people,
        person: (_, { id }) => getById(id)
    } 
export default Query;

fakedb.js

    export const people = [
    {
        id: 1,
        name: "Andy",
        age: 23,
        gender: "male"
    },
    {
        id: 2,
        name: "Nam",
        age: 26,
        gender: "female"
    },
    {
        id: 3,
        name: "Jang",
        age: 21,
        gender: "male"
    },
    {
        id: 4,
        name: "Duk",
        age: 23,
        gender: "male"
    }
];

export const getById = id => {
    const filteredPeople = people.filter(person => person.id === id);
    return filteredPeople[0];
};

我检查了我的 db.js 很多次,但我认为它没有问题 我认为错误来自其他地方 但我找不到 有人会帮助我吗? 谢谢

【问题讨论】:

  • 请包含您正在执行的导致错误的 POST 请求/graphql 查询
  • 您的 resolvers.js 缺少关闭 };,应该使用 export default resolvers; 而不是 export default Query;

标签: javascript node.js express graphql


【解决方案1】:

您的代码似乎没有任何问题,但是您是否正在对 fakedb people 数组中存在的 id 进行查询? 请分享您使用 id 传递的查询。

【讨论】:

    猜你喜欢
    • 2018-11-07
    • 2014-01-22
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2018-08-05
    • 2019-12-23
    • 1970-01-01
    • 2022-01-07
    相关资源
    最近更新 更多