【发布时间】:2021-06-17 02:22:31
【问题描述】:
我创建了两个文件
index.js
const {ApolloServer,gql} = require('apollo-server');
const fs = require('fs');
const path = require('path');
const typedefs = gql`
type Query {
info: String!
ask: [Person!]
}
type Person {
name: String!
age: Int!
}
`;
const resolvers = {
Query: {
info: () => `Hello World from Linux Fan`,
ask: () => {
return [fs.readFileSync(__dirname+path.join('/db.db'),'utf-8')]
}
}
}
const server = new ApolloServer({
typedefs,
resolvers
}).listen().then(({url}) => console.log(url)).catch(err => console.log(err));
还有一个用于存储数据库的文件
db.db
{
name:"Linux Age",
age: 19
}
但问题是每次我查询获取姓名和年龄时
{
info
ask{
name
}
}
有问题存在并说
“不能为不可为空的字段 Person.name 返回 null”
如何解决??
【问题讨论】:
-
以
return [{ name:"Linux Age", age: 19 }];... db 开头?没有 db ...而且您不知道从文件中读取数据 -
尝试按照本教程进行操作:apollographql.com/docs/tutorial/introduction。同样对于“开始”使用
console.log这个语句的输出是什么?console.log(fs.readFileSync(__dirname+path.join('/db.db'),'utf-8'))(这里不知道)。返回的数据必须与架构匹配(在您的情况下是人员对象数组)。
标签: node.js express graphql apollo apollo-server