2017-10-31 3 views
0


Der Versuch, join zu implementieren, aber immer null bekommen.Relation GraphQL

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

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


Also im Grunde möchte ich Daten, so etwas bekommen:

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

Und für Rezept, das ich erwartet

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

So habe ich Abfrage wie unten, und ich möchte Holen Sie sich alle Rezepte aus der Datenbank mit dem Benutzer

type Query { 
    recipes: [Recipe!]! 
    } 

Hier ist meine GraphiQL Abfrage

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

Aber als Antwort habe ich author: null

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


Irgendwelche Vorschläge? Vielen Dank!

+1

Das Problem ist höchstwahrscheinlich mit Ihrem Resolver, nicht mit Ihrer Abfrage. Bitte aktualisieren Sie Ihre Frage, um Ihren Resolver-Code einzuschließen. –

+0

@DanielRearden, yeah es war Problem mit Resolver Danke für die Antwort –

Antwort

0

Vielleicht wird jemand mit ähnlichen Problem konfrontiert. Habe das behoben. Wie gesagt @Daniel Rearden in Kommentaren - ja Problem war im Resolver.

So müssen Sie diese Felder in den Resolver:

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

Nachdem Sie Daten bekommen, was ich oben benötigt.