2016-03-15 40 views
6

GraphQL, veriyi sunucudan alınmasına rağmen null olarak başlığımı ve içerik özelliklerini çözüyor - konsolda oturum açma onayı veriyor. Sadece _id özelliği graphql'den döndürülür, bu json { listings: [ { _id: '56e6c94f1cf94a7c0a4e22ba', title: null, content: null } ] } sorgusundan döndüğüm şeydir. Her şeyin doğru bir şekilde kurulduğunu söyleyebildiğim kadarıyla, başlık ve içerik vermeyi, türlerin farklılıklarını dışlamak için bir GraphQLIDType vermeyi denedim.graphql yalnızca _id alanını çözüyor, diğer alanlar boş

Bir graphql sorgusu vardır:

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

benim kök sorgu türü:

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 
     }) 
     } 
    } 
    } 
}) 

ve benim "listeleme türü": Bu eski olduğunu biliyoruz

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

yapar 'console.log (listeleme)' baskı? –

+0

Bu: '[{içerik: 'İçeriğim', title: 'Merhaba ve hoş geldiniz', _id: 56e6c94f1cf94a7c0a4e22ba}]' – Melbourne2991

+0

Eğer emin iseniz, konsol.log (listing) 'bu diziyi yazdırır. hata başka bir yerde olmalıdır. Belki istemcisinde sorguyu yapıyorsun? Bunu hala çözemezseniz, alakalı daha fazla kod yayınlamayı deneyin. Bu kod bana çok iyi görünüyor. –

cevap

0

ama vardı benzer bir sorun, liste için sorgu verirken null döndürür.

diziler için sorgulama Ne zaman {tuşu: yourArray} Bir nesneyi elde edersiniz olması gerektiği, böylece:

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