2017-12-22 272 views
11

Şema yazılımımda uzaktan şema dikişi kullanıyorum. Şemayu middleware sunucusunda uzaktan alabiliyorum, rotayı bunun gibi middleware sunucusunda tanımladım.Uzantı bir sunucudan ara katman yazılımı sunucusuna nasıl iletilir

app.use('/graphql', graphqlHTTP((request,res) => { 
const startTime = Date.now(); 
return { 
    schema: remoteSchema 
    graphiql: false, 
    extensions({ document, variables, operationName, result }) { 
    return { 
     // here I am not getting extensions which I have on my another server as below. 
     console.log(res); // this does not have additional info and response headers 
     console.log(result); // this only has response against the query 
    } 
    }; 
})); 

ben sonucu sorgunun sonucu alınırken ama çözücüler vardır benim diğer sunucuda ekliyorum uzantısının bir parçası olan tepki başlıkları ve ek bilgi almıyorum.

{ 
    "data": { 
     "records": { 
      "record": [{ 
        "id": 1, 
       }, 
       { 
        "id": 2, 
       } 
      ], 
     }, 
     "additionalInfo": {} 
    }, 
    "extensions": { 
     "info": {} 
    } 
} 

Sorun ne olabilir? Bu, uzantılarda başka bir sunucuma yanıt başlıklarını ve ek bilgileri nasıl ekliyorum. Uzantı verilerinin mevcut olduğu kodun altında hata ayıkladım. Bu middleware sunucusuna geçmiyor.

Uygulama akışım, orta şema yolunu ve ardından uzak şema dikişini kullanarak başka bir sunucu yolunu arıyorum. Başka bir sunucuya eklediğim uzantıyı yanıtta middleware sunucumdan ileriye taşımayı istiyorum.

cevap

2

Eğer request.log() istek var? Çıktısını almak istediğiniz başlıklara ilişkin uzatma işlevine sahip olduğunuzdan emin olacağım, çünkü sunucudaki ara katman yazılımı, yanıt bir sonraki işleve göndermeden önce değiştireceğiniz bir şeydir. müşteriye geri.

+0

':' ve '=>' gerekli değildir. Özgün örnek kod, yöntem tanımları için nesne literal kısayolunu kullanıyor. – aaronjkrause

+0

@aaronjkrause Sadece bu belgelere rastladım, bunu işaret ettiğin için teşekkürler. – RickyM

+0

@RickyM İsteği görüyorum ama 'apiHeaders: [], ekInfo: {}, 'orda boş. –