如何在Node.js中获取调用者文件名?

时间:2017-03-28 07:41:50

标签: node.js stack-trace

我有一个Node类,我在许多项目模块中导入一旦导入到必需的模块中,我创建了它的对象,然后调用该对象的相关方法。

我的问题是如何在我的类文件中获取对象调用者的文件名而不显式传递

我不想使用 module.parent.filename ,因为它只提供父文件的文件名而不提供其他文件的文件名。在一些R& D之后,我开始知道有一个名为 stack-trace 的模块可以为我提供类似的功能。但是,当我尝试将代码放入我的类时,我得到了编写代码的文件本身的名称,而不是调用该类对象的文件名

const stackTrace = require('stack-trace');
var trace = stackTrace.get()
console.log(trace[0].getFileName())

1 个答案:

答案 0 :(得分:0)

The manual州,stackTrace.get()

  

返回CallSite个对象的数组,其中元素0是当前的调用网站。

您不想要当前的通话网站,但需要使用前一个网站,因此您需要使用trace[1].getFileName()