NestJS / graphql перехват ответа graphql

#typescript #graphql #nestjs #middleware

#машинописный текст #graphql #nestjs #промежуточное программное обеспечение

Вопрос:

Каков наилучший способ перехватить ответ перед отправкой его обратно в nestjs / graphql?

Я пытаюсь перехватить ответ на результат запроса, извлекая некоторые данные в context.extensions перед отправкой их обратно. Я пытался применить промежуточное программное обеспечение с помощью graphql-middleware, но это не работает.

это то, что я пытался сделать

 export const Pagination: MiddlewareFn = async ({ info }, next) => {
// here i'm trying to extract the data
};
 

и вот где я пытаюсь это выразить (resolver.ts)

 @UseMiddleware(Pagination)
  findAll(options: PaginationInput): Promise<PaginatedReport> {
    return applyPagination(this.reportRepository, options);
}
 

Ответ №1:

Почему бы не использовать перехватчик, который был создан специально для перехвата ответов до бизнес-логики и после бизнес-логики? На сайте docs есть несколько отличных примеров (ссылка выше).

Ответ №2:

Вы можете сделать это, внедрив перехватчики, вы также можете играть в контексте выполнения, вот полная документация об этих перехватчиках, если вам нужно больше контекста выполнения, вы можете посетить Контекст выполнения