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' ... }
- loginJSON格式,每个日志必须包含密钥
- 将(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设置一个global
variables,那就可以解决这个问题
我想在这个问题上也解决了同样的问题: 如何通过Express中的中间件链来识别请求(通过ID)。 检查一下,如果你有任何疑问在这里或在其他问题。