Javascript 使用stacktrace获取节点中的函数调用方文件时,我得到了错误的文件路径

Javascript 使用stacktrace获取节点中的函数调用方文件时,我得到了错误的文件路径,javascript,node.js,stack-trace,Javascript,Node.js,Stack Trace,因此,我有两个文件,a.js和b.js 在a.js中,我有一个test()我从b.js调用的函数 我还有以下代码来帮助我找到在b.js的哪一行调用该函数,这很好。但是我也想得到文件名,下面的代码给了我a.js,而不是b.js。。有什么建议吗 Object.defineProperty(全局,“\uu堆栈”{ 得到(){ const orig=Error.prepareStackTrace; Error.prepareStackTrace=函数(\ux,堆栈){ 返回栈; }; const err

因此,我有两个文件,
a.js
b.js

a.js
中,我有一个
test()我从
b.js调用的函数

我还有以下代码来帮助我找到在
b.js
的哪一行调用该函数,这很好。但是我也想得到文件名,下面的代码给了我
a.js
,而不是
b.js
。。有什么建议吗

Object.defineProperty(全局,“\uu堆栈”{
得到(){
const orig=Error.prepareStackTrace;
Error.prepareStackTrace=函数(\ux,堆栈){
返回栈;
};
const err=新错误;
Error.captureStackTrace(err,arguments.callee);
常量堆栈=err.stack;
Error.prepareStackTrace=orig;
返回栈;
},
});
Object.defineProperty(全局,“\u行”{
得到(){
返回_堆栈[1]。getLineNumber();
},
});
Object.defineProperty(全局,“\u文件名”{
得到(){
返回_堆栈[1]。getFileName();
},
});

好吧,我不知道为什么,但是

Object.defineProperty(全局,“\u文件名”{
得到(){
返回_堆栈[1]。getFileName();
},
});
提供的部分代码无法按预期工作。Idk它在做什么,我只知道我尝试了以下方法,效果很好

Object.defineProperty(全局“\uu callerInfo”{
得到(){
返回[uu堆栈[1]。getLineNumber(),u堆栈[1]。getFileName();
},
});

我只是将行号保存在一个常量中,将文件名保存在另一个常量中

我已经在中查找过了,每个人似乎都在使用
getFileName()就像我一样,所以我一定是做错了什么,但我不确定是什么。。。