О том, как внедрить конечную точку в перезаписанную программу SendResponseMiddleware. - PullRequest
0 голосов
/ 30 сентября 2019

Использование ts.ED Я пытаюсь разместить некоторые данные о производительности на всех моих маршрутах, и для этого я хочу добавить одно глобальное промежуточное программное обеспечение перед конечной точкой и перезаписать SendResponseMiddleware .

Я был успешен в выполнении обоих, но теперь мне нужны некоторые данные конечной точки, и я не уверен, как их внедрить. Вот пример того, что я пытаюсь сделать

import { OverrideProvider, Res, ResponseData, SendResponseMiddleware, EndpointInfo } from '@tsed/common'

@OverrideProvider(SendResponseMiddleware)
export class PerformanceAfterMiddleware extends SendResponseMiddleware {
  public use(@ResponseData() data: any, @Res() response: Res, @EndpointInfo() endpoint: EndpointInfo): any {
    console.log(`### PERFORMANCE AFTER! ${endpoint.name} ${JSON.stringify(endpoint.params)}`)
    const originalResult = super.use(data, response)
    return originalResult
  }
}

На этом я получаю ошибку:

Свойство 'use' в типе 'PerformanceAfterMiddleware' не может быть назначеното же свойство в базовом типе 'SendResponseMiddleware'. Тип '(данные: любой, ответ: Ответ, конечная точка: EndpointMetadata) => любой' нельзя назначить типу '(данные: любой, ответ: Ответ) => Response'.ts (2416)

Как я могу получить некоторые параметры конечной точки на промежуточном программном обеспечении sendResponse?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...