有没有办法知道在nodejs中从哪个文件调用函数?

时间:2016-05-25 08:28:12

标签: node.js

我正在为记录器编写一个模块,我希望每次使用调用该函数的文件的文件名调用函数dlog()时添加一个前缀。现在我每次都要这样打电话:

dlog(__filename + " log text");

有没有办法检测调用该函数的文件的名称?

1 个答案:

答案 0 :(得分:2)

来自Nodejs: get filename of caller function

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;

}