如何通过node-gyp生成的节点模块避免单例行为?

时间:2018-12-14 17:50:28

标签: c++ node.js singleton require node-gyp

我有一个nodejs应用程序,它使用我通过node-gyp构建的计算密集型C ++插件。

在我的附加组件中,我有一个单例类,该类本质上是一些静态数据容器,由用户在调用模块的任何其他函数之前初始化。

因此,当一个以上的用户使用该应用程序时,每个实例实际上将访问相同的C ++单例,这当然很糟糕。

我了解这是由于require指令引起的

var myCppModule = require('./myCppModule');
有效地表现为单身。

我知道如何通过导出模块的构造函数并调用new来解决nodejs模块的问题:

var myNodejsModule = new (require('./myNodejsModule'))();

但是有没有办法用我的node-gyp生成的模块来实现相同的目的?这样可以确保每个用户都有自己的lib实例,因此也有自己的单例。

0 个答案:

没有答案