如何从Node.js中的Error获取行和文件名?

时间:2017-05-26 11:30:25

标签: node.js error-handling

假设我有:

var err = new Error('My error!');

如何获取创建Error的行和文件名? 就像在PHP中一样:

$ex = new \Exception();
$ex->getLine();
$ex->getFile();   

2 个答案:

答案 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。这给出了模块名称和行号