And*_*L64 6 javascript node.js graphql
我有一个基本的GraphQL查询设置,如下所示:
Query.js:
const Query = {
dogs(parent, args, ctx, info) {
return [{ name: 'Snickers' }, { name: 'Sunny' }];
},
};
module.exports = Query;
Run Code Online (Sandbox Code Playgroud)
schema.graphql:
type Dog {
name: String!
}
type Query {
dogs: [Dog]!
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个createServer()用于启动服务器的函数,如下所示:
const { GraphQLServer } = require('graphql-yoga');
const Mutation = require('./resolvers/Mutation');
const Query = require('./resolvers/Query');
const db = require('./db');
function createServer() {
return new GraphQLServer({
typeDefs: 'src/schema.graphql',
resolvers: {
Mutation,
Query,
},
resolverValidationOptions: {
requireResolversForResolveType: false,
},
context: req => ({ ...req, db }),
});
}
module.exports = createServer;
Run Code Online (Sandbox Code Playgroud)
然后,我尝试dogs如下查询:
query {
dogs {
name
}
}
Run Code Online (Sandbox Code Playgroud)
但是我没有从狗的数组中获取名字,而是得到了以下错误:
{
"data": null,
"errors": [
{
"message": "Cannot return null for non-nullable field Query.dogs.",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"dogs"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
似乎是什么导致此错误?
小智 0
上面的代码可以在codesandbox中看到:https ://codesandbox.io/s/olzj9vvpk5
但是,当我将 Query 转换为类似的内容时,{}它会返回相同的错误,因此请检查您的路径和 console.log Query 以验证路径。您的导出看起来正确,但您可能忘记保存文件,正如我从课程入门文件中看到的那样,查询是一个{}. 请仔细检查。
另外,如果此代码位于公共 git 存储库中,请分享链接。