2017-02-27 4 views
0

Ich habe Probleme beim Auflösen von Feldern in einem GraphQL-Typ. So , hier Ich versuche, die find Eigenschaft patientQueryGraphql Auflösung Mapping mit makeExecutableSchema

const gqlSchema = makeExecutableSchema({ 
    typeDefs: ` 
    type patientQuery { 
    find: [String] 
    findOne: String 
    } 
    type Query { 
    patient: patientQuery 
    } 
    type Mutation { 
    addPost(name: String, title: String, content: String): patientQuery 
    } 
    schema { 
    query: Query 
    mutation: Mutation 
    } 
    `, 
    resolvers: { 
     patientQuery: { 
     find(root, params, context, ast) { 
      console.log('testing'); 
      return ['title']; 
     } 
     } 
    } 
    }); 

zu lösen, aber wenn ich eine Abfrage tun wie dieses

{ 
    patient { 
    find 
    } 
} 

ich immer null erhalten

{ 
    "data": { 
    "patient": null 
    } 
} 

Also, was ist der richtige Weg, um die Felder innerhalb der Art zu lösen?

+0

Auf den ersten Blick vermuten, dass ich es mit dem zu tun hat, Tatsache, dass Sie eine Zeichenfolge zurückgeben, aber das Feld wird erwartet, ein Array von Zeichenfolge zurückzugeben. Versuchen Sie, 'return ['title'] zurück zu geben' – XuoriG

+0

änderte die Auflösungsfunktion ein Array zurück, aber immer noch ich null – Shalkam

Antwort

0

Also, ich habe das Problem herausgefunden. Der Typ Query musste das Patientenfeld auflösen, so dass null nicht zurückgegeben wird.

So sind die neuen Resolvern Objekt sieht wie folgt aus, um das Problem zu lösen

resolvers: { 
    Query: { 
    patient() { 
     return true; 
    } 
    }, 
    patientQuery: { 
    find(root, params, context, ast) { 
     console.log('testing'); 
     return [ 'title' ]; 
    } 
    } 
} 

die alte: -

resolvers: { 
    patientQuery: { 
    find(root, params, context, ast) { 
     console.log('testing'); 
     return ['title']; 
    } 
    } 
}