【发布时间】: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