如何在多个node.js文件中设置全局模块

时间:2019-06-22 16:49:56

标签: node.js node-modules

我有一个正在处理的项目,但我意识到它超过2000行,因此想将其拆分为不同的文件,以实现不同的功能组。例如。发送消息和阅读消息的功能在message.js中。问题是我在每个文件中都需要很多模块,如果我创建该模块的实例,则需要在另一个文件中创建一个新实例,但是我想使用同一实例!

我尝试过module.exports = { ... }exports.function()来将模块和实例传递给其他文件,但有时它说该功能不存在。

例如在我的app.js文件中:

const module = require('module')
instance = new module()

const message = require('./message.js')
message.passModule(instance)

在我的message.js文件中:

let module-instance

exports.passModule = function(instance) {
    module-instance = instance
}

module-instance.doSomething()

那么,如何使所有文件中的所有模块都可用,而仅在一个文件中声明它们,以及如何使我在一个文件中创建的实例可以在其他文件中使用?

1 个答案:

答案 0 :(得分:0)

某些库文件

singleton / file.js

const someDependency = require('some-module');

class Singleton {
  method() {
    ...
    return someDependency.someFunctionality();
  }
  ...
}
module.exports = new Singleton();

您想使用单身人士的地方

const singleton = require('singleton/file');
singleton.method();