Как внедрить контекст уровня запроса в методе контроллера - PullRequest
0 голосов
/ 24 февраля 2019

В Loopback4, как получить доступ к контексту уровня запроса в любом контроллере и репозиториях (контекст уровня запроса был доступен в файле sequence.ts)

sequence.ts

async handle(context: RequestContext) {
  try {
    const { request, response } = context; //TODO: How to access this context in controllers
    const route = this.findRoute(request);
    const args = await this.parseParams(request, route);
    const result = await this.invoke(route, args);
    this.send(response, result);
  } catch (err) {
    this.reject(context, err);
  }
}

В блоке try, первая строка, "const {request, response} = context;", хотел бы получить доступ к этой переменной контекста в моих контроллерах и репозиториях.

Обычно в более старых версиях Loopback2 / 3 я получаю доступконтекст уровня запроса с помощью следующих шагов:

let LoopBackContext = require('loopback-context');
let ctx = LoopBackContext.getCurrentContext();
ctx.set('inTime', +new Date());
console.log(ctx.get('inTime'));

Пожалуйста, помогите мне, если есть какой-либо способ получить доступ к каждому контексту запроса в Loopback4.

Спасибо,

1 Ответ

0 голосов
/ 27 февраля 2019

Наконец-то получили решение.В конструкторах контроллера / репозитория введите контекст, как показано ниже:

constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {

}
meth() {
   console.log(this.req);
}
...