無法透過GraphQL接收mysql數據
P粉092778585
2023-08-29 18:02:24
<p>我正在嘗試在一個Node.js Express伺服器中使用GraphQL和mysql。 </p>
<p>但每次執行查詢時都會出現以下錯誤:</p>
<p>錯誤訊息如下:</p>
<pre class="brush:php;toolbar:false;">{
"errors": [
{
"message": "Expected Iterable, but did not find one for field \"RootQueryType.getAllGoals\".",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"getAllGoals"
]
}
],
"data": {
"getAllGoals": null
}
}</pre>
<p>這是我的GraphQL查詢:</p>
<pre class="brush:php;toolbar:false;">query {
getAllGoals {
title
progress
goal
}
}</pre>
<p>我從"SELECT * FROM (我的表)"中得到了預期的結果,但是當我嘗試將其作為GraphQL的resolver返回時,它給了我一個錯誤,如下所示:< ;/p>
<pre class="brush:php;toolbar:false;">const RootQuery = new GraphQLObjectType({
name: "RootQueryType",
fields: {
getAllGoals: {
type: new GraphQLList(GoalType),
resolve(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>我已經檢查過我的GraphQLObjectType GoalType是否有任何衝突,但是沒有發現任何問題。 </p>
我已經修復了,我只需要建立一個包含查詢的promise(如下所示):