我在node,npm上遇到了一些问题,并试图弄清楚包的结构,但我不太确定该怎么做。我一直在寻找有关如何导入npm软件包的通用约定。

我最近在Node中编写了一个小型Web服务器,并且一直在使用HttpDispatcher来帮助处理请求。当我尝试制作多个HttpDispatcher“对象”时,就会出现问题。当我这样做时,它实际上并没有创建一个新的,而是继续使用我创建的第一个。

一般来说,我对Javascript和Node还是相当陌生,但是过去我遇到过这样的问题:在循环中创建匿名函数(我认为这就是它们的名字)并不总是(如果有的话)按预期进行。因此,我真的很好奇通常如何使用具有多个实例的程序包?

我通过使HttpDispatcher'object'成为全局对象(删除了var关键字)解决了我的问题。这实际上将按预期方式创建一个新对象。不过,我担心这样做不合适。

所以我问你:
声明/初始化/导出在npm包中声明的对象的正确方法是什么?我是否应该向我的问题的软件包作者提交拉取请求或建议?

非常感激!

最佳答案

没错,您应该与HttpDispatcher模块的作者联系

在HttpDispatchermodule的末尾,而不是导出实例:

module.exports = new HttpDispatcher();


作者可以导出构造函数本身,然后可以在使用者模块中创建所需数量的实例:

module.exports = HttpDispatcher;

关于javascript - NPM包本地VS全局范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37720811/

10-12 20:38