当我们使用未定义的变量时会发生ReferenceError,这很容易发生。在这种情况下,我的终端显示如下:
ReferenceError:未定义usrname
有没有办法获取这方面的详细信息,例如文件和亚麻呢?
由于
答案 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);
});