我有一个/libs
文件夹多的NodeJS文件,例如:避免的NodeJS模块“需要”复制
math.js
,restapi.js
,auth.js
,push.js
而math.js
是提供基本的数学功能和所有类restapi.js
,auth.js
,push.js
需要math.js
。
的问题是,我在所有其他类这么多require './math.js
,例如:
// In auth.js
var Auth = new function __Auth(){
function A(){
var math = require "./math.js";
return math.fooA();
}
function B(){
var math = require "./math.js";
return math.fooB();
}
}
exports = module.exports = Auth;
在app.js
(主应用程序)
var math= require('./math.js');
math.getConfig('config.json');
var auth= require('./auth.js');
console.log(auth.fooA());
在app.js
,基类math.js
绝首先调用getConfig()
来从配置文件初始化必要的变量和常量。 (因此,我想只保留math.js
的一个实例,因为它是默认的NodeJS行为,所以它可以)。
(注意,这只是一个简化实际代码库的例子)。
我知道NodeJS有一个require
缓存机制,但这是否意味着每个函数调用有一个require math.js
是唯一的方法?我认为这是非常昂贵和非最佳的。
在其他语言(例如PHP)中,顶部可能有一个require
,并且没有require
用于每个函数引用同一个类。
任何建议更好& 更高效代码设计?
PS。我刚刚编辑了一些问题来澄清情况。
似乎像循环依赖问题或类似的东西。我们需要看到'math.js'来给出一个很好的答案。 – tcooc