如何在控制器方法中注入请求级上下文

问题描述 投票:0回答:1

在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 block中,第一行“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中的每个请求上下文,请帮助我。

谢谢,

loopbackjs v4l2loopback
1个回答
0
投票

终于得到了解决方案。在控制器/存储库构造函数中,注入上下文,

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

}
meth() {
   console.log(this.req);
}
© www.soinside.com 2019 - 2024. All rights reserved.