2017-10-31 23 views
0


joinを実装しようとしていますが、常にnullを取得しようとしています。リレーションGraphQL

type User { 
    id: Int! 
    username: String! 
    recipes: [Recipe] 
    } 

    type Recipe { 
    id: Int! 
    title: String! 
    author: User 
    } 


だから、基本的に私はデータにこのような何かを取得したい:

User { 
    username, 
    recipes: [{//recipe}, {//recipe}] 
} 

をレシピのために私は

Recipe { 
    title, 
    author: {//user} 
} 

を期待ので、私は以下のようなクエリがある、と私はしたいです含まれているユーザーと一緒にデータベースからすべてのレシピを取得する

type Query { 
    recipes: [Recipe!]! 
    } 
ここで

は私のGraphiQLクエリ

{ 
    recipes { 
    id, 
    author { 
     id, 
     username 
    } 
    } 
} 

ですが、応答では、私はauthor: null

{ 
    "data": { 
    "recipes": [ 
     { 
     "id": 1, 
     "author": null 
     }] 
    } 
} 


任意の提案がありますか?ありがとう!

+1

問題は、あなたのリゾルバであり、あなたの質問ではないでしょう。リゾルバーコードを含めるように質問を更新してください。 –

+0

@DanielRearden、それは解決者との問題でした 応答ありがとう –

答えて

0

多分誰かが同様の問題に直面するでしょう。 これを修正しました。コメントとして@Daniel Reardenが述べたように - はい問題は解決者にありました。

だから、レゾルバこのフィールドを追加する必要があります。

const resolverFunctions = { 
    User: { 
     recipes(author) { 
     return author.getRecipes(); 
     } 
    }, 
    Recipe: { 
     author(recipe) { 
     return recipe.getUser(); 
     } 
    } 
} 

あなたは、私が上記の必要なものデータを取得します後。