node.js中可以通过 __dirname 获取当前文件的目录。
那么如何在被调用函数中获取调用者的文件地址和函数名以及行数位置?
可使用Error.prepareStackTrace来获取StackTrace数组对象,获取调用者文件信息。
var getCallerPath = function() {
var orig = Error.prepareStackTrace;
Error.prepareStackTrace = function(_, stack) { return stack; };
var err = new Error;
var stack = err.stack;
Error.prepareStackTrace = orig;
// stack[0]为当前函数, stack[1]为调用者,stack[2]为上层调用者
return stack[2].getFileName()
}
使用方法,直接调用该函数,即可获取上层函数信息
var callerPath = getCallerPath()
StackTrace还有其它方法,可以获取调用者行数、位置信息等:
getPosition
getFunction
getFunctionName
getFileName
getLineNumber
回复 (0)
微信扫码 立即评论