Impossible de recevoir des données MySQL via GraphQL
P粉092778585
2023-08-29 18:02:24
<p>J'essaie d'utiliser GraphQL et MySQL dans un serveur Node.js Express. </p>
<p>Mais chaque fois que j'exécute la requête, j'obtiens l'erreur suivante : </p>
<p>Le message d'erreur est le suivant :</p>
<pre class="brush:php;toolbar:false;">{
"erreurs" : [
{
"Message" : "Itérable attendu, mais n'en a pas trouvé pour le champ "RootQueryType.getAllGoals".",
"emplacements" : [
{
"ligne": 2,
"colonne": 3
}
],
"chemin": [
"obtenir tous les objectifs"
]
}
],
"données" : {
"getAllGoals" : nul
}
}</pré>
<p>Voici ma requête GraphQL : </p>
<pre class="brush:php;toolbar:false;">requête {
obtenirTouslesGoals {
titre
progrès
but
}
}</pré>
<p>J'obtiens le résultat attendu de "SELECT * FROM (MY TABLE)", mais lorsque j'essaie de le renvoyer en tant que résolveur GraphQL, cela me donne une erreur comme celle-ci : </p>
<pre class="brush:php;toolbar:false;">const RootQuery = new GraphQLObjectType({
nom : "RootQueryType",
des champs: {
obtenir tous les objectifs : {
tapez : nouveau GraphQLList (GoalType),
résoudre (parent, arguments) {
return db.query("SELECT * FROM myTable", (erreur, résultat) => {
si (erreur) lance une erreur
console.log(JSON.parse(JSON.stringify(result)))
retourner JSON.parse(JSON.stringify(result))
})
}
}
}
})</pré>
<p>J'ai vérifié mon GraphQLObjectType GoalType pour détecter tout conflit, mais je n'ai rien trouvé. </p>
Je l'ai déjà corrigé, il me suffisait de créer une promesse contenant la requête (comme ci-dessous) :