获取需要当前模块的模块的名称

时间:2017-03-24 02:57:58

标签: node.js

有没有办法在当前模块中获取require当前模块的调用者模块的名称?

我看到有一个module.parent.filename,但这只返回需要当前模块的第一个模块。

core.js

console.log('Caller module: ' + module.parent.filename)

module1.js

require('core')
  

来电模块:[...] / module1.js

module2.js

require('core')
  

来电模块:[...] / module1.js

我问这是因为没有其他人专门询问上述功能(或者至少是我的结论)并且我不清楚是否可以在内获取发生require requirer 的名称。

1 个答案:

答案 0 :(得分:2)

模块在节点中只需要一次。另一个调用只是指向已加载模块的指针。执行此操作的唯一方法是在模块中导出函数并在加载时调用该函数。这看起来像这样:

<强> core.js

module.exports = function (higherModule) {
    console.log('Caller module: ' + higherModule)
}

<强> module1.js

require('./core')('module1')

<强> module2.js

require('./core')('module2')