javascript - 我在 express 中遇到 graphql 解析器错误
问题描述
我目前正在尝试使用graphql,但出现此错误(无法为不可为空的字段Person.name 返回null。)我已尝试修复它,但无法帮助我
应用程序.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;
解析器.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 很多次,但我认为它没有问题我认为错误来自其他地方但我找不到它有人可以帮助我吗?谢谢
解决方案
您的代码似乎没有任何问题,但是您是否正在对 fakedb people 数组中存在的 id 进行查询?请分享您通过 id 传递的查询。
推荐阅读
- r - 如何识别数据集之间的匹配字符串?
- python - 标签合并数据框
- structured-data - 如果页面在谷歌结构化数据中有错误,会有什么问题吗?
- typescript - 无法从 .d.ts 文件导出默认值
- javascript - Recorderjs 不会上传超过 30 秒的记录
- shell - 在 Dockerfile 或 docker run 中包含 docker compose 启动命令
- stm32 - lwip组件的SNTP app如何设置接收时间?
- networking - TCP over IPv6 to overcome NAT issues
- gmail-api - AMP-Email:显示您的动态电子邮件时出错 (INTERNAL_ERROR)
- r - 如何在 R 中连接 2 个不同的列表?