Nodejs: get filename of caller function
我想知道如何获取函数调用者的绝对路径?
让我们说:
我在文件
称为
n
这是一个如何使用stacktrace在node
中查找调用方文件的示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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; } |
此处未完全回答问题
但有些人可能会喜欢此信息。
使用NodeJS
n
n
在JavaScript中获取堆栈跟踪非常困难。我发现的最好的方法是抛出一个错误,捕获它,从
每个堆栈框架都为您提供文件路径,行号和函数名。 Webkit甚至支持参数,但在我上次检查时仍无法使用。
然后就是跨不同事件跟踪代码的问题。
我实际上写了一篇关于此的博客文章:http://fritsvancampen.wordpress.com/2013/03/28/error-handling-in-javascript-a-better-way/
n
您可以使用
1 2 3 4 5 | var path = require.resolve("a"); //or var path = require.resolve("./a.js"); |