一尘不染

Node.js:获取调用者函数的文件名

node.js

我想知道如何获取函数调用者的绝对路径?

可以这样说:

在文件中a.js我打电话b();
b()是file中定义的函数b.jsa.js要求b。那么,如何a.jsb.js节点中获取绝对路径?


阅读 497

收藏
2020-07-07

共1个答案

一尘不染

这是一个如何使用stacktrace在节点中查找调用方文件的示例

function _getCallerFile() {
    try {
        var err = new Error();
        var callerfile;
        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) return callerfile;
        }
    } catch (err) {}
    return undefined;
}
2020-07-07