假设我有:
var err = new Error('My error!');
如何获取创建Error
的行和文件名?
就像在PHP中一样:
$ex = new \Exception();
$ex->getLine();
$ex->getFile();
答案 0 :(得分:0)
获取当前文件的文件名:使用__filename
。
要获取当前文件的文件夹:使用__dirname
要从Error
对象解析文件,您需要Error
具有stack
属性,希望指向文件。然后,您需要解析stack
字符串中的文件名和行,或使用执行此操作的模块。
> new Error().stack
Error
at repl:1:1
at sigintHandlersWrap (vm.js:22:35)
at sigintHandlersWrap (vm.js:73:12)
at ContextifyScript.Script.runInThisContext (vm.js:21:12)
at REPLServer.defaultEval (repl.js:346:29)
at bound (domain.js:280:14)
at REPLServer.runBound [as eval] (domain.js:293:12)
at REPLServer.<anonymous> (repl.js:545:10)
at emitOne (events.js:101:20)
at REPLServer.emit (events.js:188:7)
答案 1 :(得分:0)
您可以使用堆栈跟踪node module。这给出了模块名称和行号