javascript - Node : get filename of caller function

标签 javascript node.js

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

这么说吧:

在文件 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/

相关文章:

javascript - 单击按钮时无法将值传递给事件处理程序

javascript - ng-click 是突兀的

javascript - jQuery - 在悬停时 append 内容

node.js - 将 tls.CleartextStream 实例传递给工作进程

node.js - 使用 nodejs、expressjs 和 knox 显示来自 amazon s3 的图像

node.js - Nginx 和多个 Meteor/Nodejs 应用程序的问题

javascript - 获取对象: "undefined" on React

javascript - 将 jQuery 选择器与 'this' 组合

node.js - 在 Node.js 中使用 TXN 将附件上传到 CouchDB 问题

node.js - 无法使用 nodemailer 从我想要的域发送电子邮件