Heim  >  Fragen und Antworten  >  Hauptteil

Es können keine MySQL-Daten über GraphQL empfangen werden

<p>Ich versuche, GraphQL und MySQL auf einem Node.js Express-Server zu verwenden. </p> <p>Aber jedes Mal, wenn ich die Abfrage ausführe, erhalte ich die folgende Fehlermeldung: </p> <p>Die Fehlermeldung lautet wie folgt:</p> <pre class="brush:php;toolbar:false;">{ "Fehler": [ { "message": "Iterierbar erwartet, aber für das Feld "RootQueryType.getAllGoals" nicht gefunden.", "Standorte": [ { "Zeile": 2, „Spalte“: 3 } ], "Pfad": [ „getAllGoals“ ] } ], "Daten": { "getAllGoals": null } }</pre> <p>Dies ist meine GraphQL-Abfrage: </p> <pre class="brush:php;toolbar:false;">query { getAllGoals { Titel Fortschritt Ziel } }</pre> <p>Ich erhalte das erwartete Ergebnis von „SELECT * FROM (MY TABLE)“, aber wenn ich versuche, es als GraphQL-Resolver zurückzugeben, erhalte ich eine Fehlermeldung wie diese: < ;/p> <pre class="brush:php;toolbar:false;">const RootQuery = new GraphQLObjectType({ Name: "RootQueryType", Felder: { getAllGoals: { Typ: new GraphQLList(GoalType), lösen(parent, args) { return db.query("SELECT * FROM myTable", (err, result) => { if (err) throw err console.log(JSON.parse(JSON.stringify(result))) return JSON.parse(JSON.stringify(result)) }) } } } })</pre> <p>Ich habe meinen GraphQLObjectType GoalType auf Konflikte überprüft, aber nichts gefunden. </p>
P粉092778585P粉092778585418 Tage vor450

Antworte allen(1)Ich werde antworten

  • P粉340264283

    P粉3402642832023-08-30 12:30:40

    我已经修复了,我只需要创建一个包含查询的promise(如下所示):

    async resolve(parent, args) {
                    var p = new Promise((resolve, reject) => {
                        db.query("SELECT * FROM myTable", (err, result) => {
                            console.log(JSON.parse(JSON.stringify(result)))
                            resolve(JSON.parse(JSON.stringify(result)))
                        })
                    })
                    return p
                }

    Antwort
    0
  • StornierenAntwort