如何在不使用 req 和 res.locals 的情况下在 NodeJS 中实现 ThreadLocal 变量功能?
How to achieve ThreadLocal variable functionality in NodeJS without using req and res.locals?
我有一个场景,我需要为每个请求执行一些业务逻辑和日志记录。所以要存储的数据应该与其他请求互斥。
我不能使用 res.locals 或 req 对象,因为处理应该基于事件开始。并且事件回调不包含这些对象。
基本保存了bookshelfjs的事件
initialize: function(){
this.on("saving",function(model, attrs, options){
//do some stuff
//require data from request
});
}
您在 Node.JS 中没有主题,您有 continuations。
因此,一些要查看的软件包是 continuation-local-storage and request-local-storage。
您可以通过(ab)使用 Domain API 实现类似的效果。或者,如果您可以适当地构造闭包或回调参数,则可以完全不需要它。
我有一个场景,我需要为每个请求执行一些业务逻辑和日志记录。所以要存储的数据应该与其他请求互斥。
我不能使用 res.locals 或 req 对象,因为处理应该基于事件开始。并且事件回调不包含这些对象。
基本保存了bookshelfjs的事件
initialize: function(){
this.on("saving",function(model, attrs, options){
//do some stuff
//require data from request
});
}
您在 Node.JS 中没有主题,您有 continuations。
因此,一些要查看的软件包是 continuation-local-storage and request-local-storage。
您可以通过(ab)使用 Domain API 实现类似的效果。或者,如果您可以适当地构造闭包或回调参数,则可以完全不需要它。