J'ai une configuration de base de requête GraphQL comme suit:
Query.js:
const Query = {
dogs(parent, args, ctx, info) {
return [{ name: 'Snickers' }, { name: 'Sunny' }];
},
};
module.exports = Query;
schema.graphql:
type Dog {
name: String!
}
type Query {
dogs: [Dog]!
}
J'ai créé une fonction createServer()
pour démarrer le serveur comme suit:
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;
J'ai ensuite essayé d'interroger dogs
comme suit:
query {
dogs {
name
}
}
Mais au lieu d'obtenir les noms de la série de chiens, j'ai plutôt l'erreur suivante:
{
"data": null,
"errors": [
{
"message": "Cannot return null for non-nullable field Query.dogs.",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"dogs"
]
}
]
}
Qu'est-ce qui semble être à l'origine de cette erreur?
Le code ci-dessus fonctionne comme vous pouvez le voir dans codesandbox: https://codesandbox.io/s/olzj9vvpk5
Mais quand je convertis Query en quelque chose comme {}
il renvoie la même erreur, veuillez donc vérifier vos chemins et requête console.log pour valider le chemin. Votre export semble correct mais vous avez peut-être oublié d'enregistrer le fichier comme je peux le voir dans les fichiers de démarrage du cours. La requête est un {}
. Veuillez vérifier.
De plus, si ce code est dans un dépôt git public, veuillez partager le lien.
Je sais que cette question a été répondue, mais pour moi, la seule chose qui a résolu ce problème était de passer également l'argument info.