【问题标题】:How to get line and file name from Error in Node.js?如何从 Node.js 中的错误中获取行名和文件名?
【发布时间】:2017-05-26 11:30:25
【问题描述】:

假设我有:

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

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

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

【问题讨论】:

  • err.stack 可以为您提供堆栈跟踪。

标签: node.js error-handling


【解决方案1】:

要获取当前文件的文件名:使用__filename

要获取当前文件的文件夹:使用__dirname

要从Error 对象解析文件,您需要一个带有stack 属性的Error,希望它指向文件。然后,您需要从 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)

【讨论】:

    【解决方案2】:

    您可以使用堆栈跟踪node module。这给出了模块名称和行号

    【讨论】:

      猜你喜欢
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 2016-07-15
      相关资源
      最近更新 更多