2016-03-15 37 views
6

GraphQL rozwiązuje moje własności tytułu i zawartości jako null, chociaż dane są zdecydowanie pobierane z serwera - logi konsoli potwierdzają to. Tylko właściwość _id jest zwracana z graphql, to jest to, co otrzymuję z zapytania json { listings: [ { _id: '56e6c94f1cf94a7c0a4e22ba', title: null, content: null } ] } O ile mogę powiedzieć, że wszystko jest poprawnie ustawione, próbowałem również nadać tytułowi i zawartości GraphQLIDType, aby wykluczyć różnice, które on wpisuje.graphql rozwiązuje tylko pole _id, inne pola są zerowe

Mam zapytanie graphql:

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

mój typ kwerendy 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 
     }) 
     } 
    } 
    } 
}) 

i mój "typ aukcja":

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

co robi 'console.log (liście)' print? –

+0

To: '[{content: 'Jestem treścią', tytuł:" Witam i zapraszam ", _id: 56e6c94f1cf94a7c0a4e22ba}]' – Melbourne2991

+0

Jeśli jesteś absolutnie pewien, że 'console.log (listing)' wyświetla tę tablicę, to błąd powinien być gdzie indziej. Może w twoim kliencie, gdzie robisz zapytanie? Jeśli nadal nie możesz tego rozwiązać, rozważ opublikowanie odpowiedniego kodu. Ten kod wygląda mi doskonale. –

Odpowiedz

0

wiem, że to jest stary, ale miał podobny problem, gdy zapytanie o listę zwraca null.

Podczas odpytywania dla tablic dostaniesz object {klucz: yourArray}, więc powinno być:

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