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()代码>就像我一样,所以我一定是做错了什么,但我不确定是什么。。。