我有一个正在处理的项目,但我意识到它超过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()
那么,如何使所有文件中的所有模块都可用,而仅在一个文件中声明它们,以及如何使我在一个文件中创建的实例可以在其他文件中使用?
答案 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();