如何在不使用req和res.locals的情况下在NodeJS中实现ThreadLocal变量功能?

时间:2017-03-06 10:06:27

标签: javascript node.js express bookshelf.js

我有一个场景,我需要为每个请求做一些业务逻辑和日志记录。因此,要存储的数据应与其他请求互斥。

我不能使用res.locals或req对象,因为处理应该基于事件开始。事件回调不包含这些对象。

它基本上保存了bookshelfjs事件。

initialize: function(){

  this.on("saving",function(model, attrs, options){
    //do some stuff
    //require data from request
   });
}

1 个答案:

答案 0 :(得分:1)

你在Node.JS中没有线程,你有continuations

因此,要查看的一些软件包是continuation-local-storagerequest-local-storage

您可以使用Domain API通过(ab)实现类似的功能。或者你可以完全取消它的需要,如果你可以适当地构造闭包或回调参数。