如何在nodejs中获取ReferenceError的详细信息

时间:2015-11-29 22:43:03

标签: javascript node.js

当我们使用未定义的变量时会发生ReferenceError,这很容易发生。在这种情况下,我的终端显示如下:

  

ReferenceError:未定义usrname

有没有办法获取这方面的详细信息,例如文件和亚麻呢?

由于

2 个答案:

答案 0 :(得分:1)

在nodejs中有referenceError时会得到堆栈跟踪。

ReferenceError: d is not defined
    at Object.<anonymous> (E:\test.js:5:13)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Function.Module.runMain (module.js:467:10)
    at startup (node.js:134:18)
    at node.js:961:3

上面的堆栈跟踪清楚地提到了test.js:5:13,它们分别是文件名,行号和列号。

答案 1 :(得分:0)

如果您可以捕获被抛出的ReferenceError,那么您可以检查其stack属性,该属性将包含文件,行和列信息:

try {
  // suspect code
} catch (e) {
  console.log(e.stack);
}

您也可以尝试处理uncaughtException

process.on('uncaughtException', function (e) {
  console.log(e.stack);
  process.exit(1);
});