这是一个如何使用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;
}
问题内容: 这是来自三个文件的一些示例代码: 我需要动态获取调用方函数的文件路径,而无需传递任何额外的参数。 问题答案: 您需要弄弄的内部运作。请参阅:有关JavaScript Stack Trace API的Wiki条目 。 我已经对提议的提交中的某些代码进行了一些测试,它似乎可以工作。您最终会走上一条绝对之路。 以及一个包含模块的测试: 您将在控制台上找到的绝对路径。 说明 这不是一个“ no
问题内容: 如何获得调用当前函数的函数的名称和行?我想要一个像这样的基本调试功能(使用npmlog定义): 当从另一个函数调用时,它将是这样的: 为了清楚起见,我想要的基本上与[ython中的类似: 是否有等效的Node来完成此任务? 问题答案: 您可以添加一些原型以提供从V8访问此信息的权限: 分别返回“ 28”和“ foo”。
问题内容: 如果您有两个功能,例如: 并且A呼叫B,您能知道谁在B内部呼叫B时,例如: 问题答案: 您可以使用检查模块获取所需的信息。它的堆栈方法返回帧记录列表。 对于 Python 2, 每个帧记录都是一个列表。每个记录中的第三个元素是呼叫者名称。您想要的是: def f(): … print inspect.stack()[1][3] … def g(): … f() … g() g 对于 P
问题内容: 我正在使用以下代码来获取JavaScript调用者函数的名称: 有没有办法发现调用该方法的行号? 另外,是否有办法获取调用该方法的JavaScript文件的名称?还是源URL? 问题答案: 这适用于我在chrome / QtWebView中
问题内容: 我用Express 3在node.js中创建文件上传功能。 我想获取图像的文件扩展名。所以我可以重命名文件,然后将文件扩展名附加到它。 如何在node.js中获取图像的扩展名? 问题答案: 我相信您可以执行以下操作来获取文件名的扩展名。
问题内容: 例如,方法调用方法。在方法中,如何获取文件名(我不想传递给方法)… 问题答案: 您可以使用该模块来实现此目的: