Tidak dapat menerima data mysql melalui GraphQL
P粉092778585
P粉092778585 2023-08-29 18:02:24
0
1
498
<p>Saya cuba menggunakan GraphQL dan mysql dalam pelayan Node.js Express. </p> <p>Tetapi setiap kali saya menjalankan pertanyaan, saya mendapat ralat berikut: </p> <p>Mesej ralat adalah seperti berikut:</p> <pre class="brush:php;toolbar:false;">{ "kesilapan": [ { "mesej": "Dijangka Boleh Lelar, tetapi tidak menemui satu untuk medan "RootQueryType.getAllGoals".", "lokasi": [ { "baris": 2, "lajur": 3 } ], "jalan": [ "getAllGoals" ] } ], "data": { "getAllGoals": null } }</pre> <p>Ini adalah pertanyaan GraphQL saya: </p> <pre class="brush:php;toolbar:false;">pertanyaan { getAllGoals { tajuk kemajuan Matlamat } }</pre> <p>Saya mendapat hasil yang diharapkan daripada "PILIH * DARI (JADUAL SAYA)", tetapi apabila saya cuba mengembalikannya sebagai penyelesai GraphQL, ia memberi saya ralat seperti ini: < ;/p> <pre class="brush:php;toolbar:false;">const RootQuery = GraphQLObjectType baharu({ nama: "RootQueryType", medan: { getAllGoals: { jenis: GraphQLList baharu(GoalType), menyelesaikan(ibu bapa, args) { kembalikan db.query("PILIH * DARI myTable", (err, hasil) ==> { jika (err) membuang err console.log(JSON.parse(JSON.stringify(result))) kembalikan JSON.parse(JSON.stringify(result)) }) } } } })</pre> <p>Saya telah menyemak GraphQLObjectType GoalType saya untuk sebarang konflik, tetapi tidak menemui apa-apa. </p>
P粉092778585
P粉092778585

membalas semua(1)
P粉340264283

Saya sudah membetulkannya, saya hanya perlu membuat janji yang mengandungi pertanyaan (seperti di bawah):

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
            }
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan