2016-03-15 13 views
6

GraphQL sta risolvendo il mio titolo e le proprietà del contenuto come nulle, sebbene i dati siano definitivamente recuperati dal server - il log della console conferma. Solo la proprietà _id viene restituita da graphql, questo è ciò che torno dalla query json { listings: [ { _id: '56e6c94f1cf94a7c0a4e22ba', title: null, content: null } ] } Per quanto posso dire che tutto è impostato correttamente, ho anche provato a dare titolo e contenuto a GraphQLIDType per escludere le differenze che esso tipizza.graphql sta risolvendo solo il campo _id, altri campi sono nulli

Ho una domanda graphql:

query(` 
    query findListings { 
    listings(offset: 1) { 
     _id, 
     title, 
     content 
    } 
    } 
`).then((json) => { 
    console.log('json', json.data) 
}) 

il mio tipo di query root:

const QueryType = new GraphQLObjectType({ 
    name: 'Query', 
    fields: { 
    listings: { 
     name: 'listings', 
     type: new GraphQLList(ListingType), 
     args: { 
     limit: { 
      type: GraphQLInt 
     }, 
     offset: { 
      type: GraphQLInt 
     } 
     }, 
     resolve(source, args, info) { 
     const { fieldASTs } = info 
     const projection = getProjection(fieldASTs[0]) 

     return ListingModel.find({}, projection).then(listing => { 
      console.log(listing) 
      return listing 
     }) 
     } 
    } 
    } 
}) 

e il mio "Tipo di annuncio":

const ListingType = new GraphQLObjectType({ 
    name: 'Listing', 
    fields: { 
    _id: { 
     type: GraphQLID 
    }, 
    title: { 
     type: GraphQLString 
    }, 
    content: { 
     type: GraphQLString 
    } 
    } 
}) 
+0

cosa significa 'console.log (avviso)' di stampa? –

+0

Questo: '[{contenuto: 'Io sono il contenuto', titolo: 'Ciao e benvenuto', _id: 56e6c94f1cf94a7c0a4e22ba}]' – Melbourne2991

+0

Se sei assolutamente sicuro che 'console.log (listing)' stampa quell'array, quindi l'errore dovrebbe essere altrove. Forse nel tuo cliente in cui fai la query? Se non è ancora possibile risolvere questo problema, prendere in considerazione la pubblicazione di più codice che sono rilevanti. Questo codice mi sembra perfetto. –

risposta

0

So che questo è vecchio ma aveva problema simile, quando si interroga la lista restituisce null.

durante la ricerca di matrici si otterrà un oggetto {chiave: yourArray}, quindi dovrebbe essere:

return ListingModel.find({}, projection).then(listing => { 
console.log(listing) 
return {listing: listing}