如何修复Node.js(请求上下文包)丢失上下文问题

时间:2019-08-27 12:49:19

标签: node.js requestcontext

我有一个节点api服务(v 8.15.1)。我们创建了一个节点包,它使用npm包“ request-context”(v2.0.0)来维护nodejs请求上下文。此自定义程序包(称为ContextService)正在节点api服务中使用。 对api服务的所有请求都在标头中携带授权令牌。当请求到达api服务时,我们使用快速中间件在请求上下文中设置令牌。这样,只要需要此令牌,就可以从ContextService.getAttribute方法中检索它。

问题:有时,上下文服务会丢失其上下文。那时,尝试通过请求从ContextService获取令牌,导致检索到属于其他请求的令牌。这破坏了我的应用程序。

有人在请求上下文npm软件包中发现类似问题吗?我在下面为我的ContextService提供代码段,您是否认为有任何问题?如果此npm软件包存在已知问题,您可以推荐一些更好的选择吗?

//要配置请求上下文

public static init(expressApp: express.Application) {
  ContextService.requestContext = require('request-context');  
  expressApp.use(ContextService.requestContext.middleware('request'));
 ContextService.setAttribute("token", req.header("Authorization));
}

// setAttribute

public static setAttribute(key: string, value: any): void {

    ContextService.requestContext.set(key, value);
  }

// getAttribute

public static getAttribute(key: string): any {

    return ContextService.requestContext.get(key);
  }

预期:应始终维护请求上下文。

0 个答案:

没有答案