单独的modules.exports函数不能互相调用

时间:2018-06-14 02:51:50

标签: node.js require node-modules

我创建了两个modules.export函数,在某些情况下它们需要彼此。

例如:

// a.js
modules.exports = function(){ b(); }

// b.js
modules.exports = function(){ console.log('b'); }

// main.js
let a = require('a.js');
let b = require('b.js');

a();

如上所述,它会抛出错误,说'b()'不存在。在常规JS中,只要定义在相同或更高的范围内,就可以定义调用其他函数的函数没问题,所以我不确定为什么module.exports不会发生这种行为。

我真的不想在a.js中要求b(),因为这会在我的项目中产生大量开销。

修改

不幸的是,将模块添加到全局范围不是一种选择。

1 个答案:

答案 0 :(得分:0)

这是你的回答朋友:

//a.js
const b = require('./b.js')
modules.exports = function(){ b(); }

//b.js
modules.exports = function(){ console.log('b'); }


// main.js
let a = require('a.js');
let b = require('b.js');

a();