Tôi đang sử dụng khâu lược đồ từ xa trên máy chủ middlware của mình. Tôi có thể lấy lược đồ từ xa trên máy chủ trung gian, định nghĩa tuyến đường của tôi như thế này trên máy chủ trung gian.Cách chuyển tiếp tiện ích mở rộng từ một máy chủ đến máy chủ trung gian
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
}
};
}));
Tôi nhận được kết quả của truy vấn trong kết quả nhưng không nhận được phản ứng tiêu đề và thông tin bổ sung mà là một phần của phần mở rộng mà tôi đang bổ sung trên máy chủ khác của tôi, nơi phân giải là ở đó.
{
"data": {
"records": {
"record": [{
"id": 1,
},
{
"id": 2,
}
],
},
"additionalInfo": {}
},
"extensions": {
"info": {}
}
}
Điều gì có thể là vấn đề? Đây là cách tôi thêm tiêu đề phản hồi và thông tin bổ sung trên máy chủ khác của tôi trong tiện ích mở rộng. Tôi gỡ lỗi bên dưới mã nơi dữ liệu tiện ích có sẵn. Điều này không được chuyển đến máy chủ trung gian.
extensions({ document, variables, operationName, result }) {
result.data.additionalInfo = res.additionalInfo;
// extension to write api headers in response
var headerObj = {};
res.apiHeaders.forEach(element => {
merge(headerObj, element);
});
result.headerObj = headerObj;
return {
information: headerObj
};
}
Luồng ứng dụng của tôi là tôi đang gọi tuyến trung gian rồi một tuyến máy chủ khác sử dụng ghép giản đồ từ xa. Tôi muốn mở rộng mà tôi đang thêm vào một máy chủ nên được chuyển tiếp đến máy chủ middleware của tôi trong phản ứng.
Không cần thiết ':' và '=>'. Mã ví dụ ban đầu đang sử dụng ký tự viết tắt của đối tượng cho các định nghĩa phương thức. – aaronjkrause
@aaronjkrause Tôi chỉ lướt qua điều đó trong tài liệu, cảm ơn vì đã chỉ ra điều đó. – RickyM
@RickyM Tôi thấy yêu cầu nhưng 'apiHeaders: [], additionalInfo: {},' trống ở đó. –