我有一个节点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);
}
预期:应始终维护请求上下文。