Node.js使用相对IDlogging多个请求

简而言之,可以将日志(在整个节点 API中)关联到某个(dynamic)引用ID吗?

[进一步解释]
所以,情况就是这样:我正在编写一个可以处理多达数百个请求的API。 它在Node.js和Express中实现。 我在整个API有广泛的日志logging,每个日志必须有一个唯一的引用ID,以便我可以将多个日志关联到相同的请求。

我可以做到这一点的一种方法是随机生成一个string,并将其作为parameter passing给每个函数调用(我将这作为最后的手段)。 我不想这样做

重申一下,

  • 请求进来
  • 随机生成string: aljsndci.json
  • 追加(Express)request.body到aljsndci.json
  • 在API中做内部逻辑
    • loginJSON格式,每个日志必须包含密钥{ ... file: 'aljsndci.json' ... }
  • 将(Express)响应附加到aljsndci.json
  • 通过快递回复

我偶然发现了像continuation-local-storage这样的解决scheme,但是,如何生成一个唯一的string(用于名称空间),然后再引用相同的string呢? 这里的所有例子都对命名空间的string进行了硬编码。 有没有例子,类似于这里的(在这里find)

 var getNamespace = require('continuation-local-storage').getNamespace; var session = getNamespace('my session'); var render = require('./lib/render.js') function finish(response) { var user = session.get('user'); render({user: user}).pipe(response); } 

而不是var session = getNamespace('my session'); ,它实际上是从这一点上调用一系列callback的名字? 像这样var thisNamespace = getNamespace(this);

基本上,如果我可以为每个后续callback设置一个globalvariables,那就可以解决这个问题

我想在这个问题上也解决了同样的问题: 如何通过Express中的中间件链来识别请求(通过ID)。 检查一下,如果你有任何疑问在这里或在其他问题。

    Interesting Posts