我想知道如何获取函数调用者的绝对路径?
这么说吧:
在文件 a.js
我调用 b()
; b()
是文件 b.js
中定义的函数。 a.js
需要 b
。那么如何从 Node 中的 b.js
获取 a.js
绝对路径?
最佳答案
无法恢复 prepareStackTrace 函数可能会导致问题。这是一个消除副作用的示例
function _getCallerFile() {
var originalFunc = Error.prepareStackTrace;
var callerfile;
try {
var err = new Error();
var currentfile;
Error.prepareStackTrace = function (err, stack) { return stack; };
currentfile = err.stack.shift().getFileName();
while (err.stack.length) {
callerfile = err.stack.shift().getFileName();
if(currentfile !== callerfile) break;
}
} catch (e) {}
Error.prepareStackTrace = originalFunc;
return callerfile;
}
关于javascript - Node : get filename of caller function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16697791/