如何使用express在Node JS应用程序中保留请求上下文?

Anu*_*jha 6 javascript node.js express

我的请求对象包含一个唯一的ID,我的应用程序中的每个日志都必须具有该ID。该ID还必须传播到我从后端调用的任何API上,现在,我正在将请求对象传递到任何地方。这显然不是理想的解决方案,有什么建议吗?

代码流

客户端------->服务器(生成请求ID,将其用于所有日志)----->将请求ID传递给任何api调用

码:

app.use(function(req,res,next) {    
  logger.info("My message",req);
});
Run Code Online (Sandbox Code Playgroud)

小智 3

您可以使用continuation-local-storage模块。还有request-local模块,它只是continuation-local-storage之上的一个小层。不过,不要指望continuation-local-storage总是完美的......您会遇到 cls 上下文无效的边缘情况。