如何获取node.js中require(id)抛出的SyntaxError的行号?

时间:2012-12-06 15:23:22

标签: node.js try-catch require

console output

我正在尝试访问我在nodejs程序中以红色突出显示的文本。我目前在require调用周围有一个try / catch块,但是我在catch中转储的堆栈跟踪不包含我试图访问的信息(即错误发生的'testdebug.js'中的行号)。

以红色突出显示的行显然是由节点内部的东西打印出来的。如何将该字符串存储在程序中?代码如下。

var syntaxError = true;
try {
    debugModule = require('./testdebug.js')
    syntaxError = false;
}
catch(e) {
    console.log(e.stack);
    //there was a syntax error.
}

1 个答案:

答案 0 :(得分:0)

这家伙知道怎么了。他的模块使用esprima检查代码中的解析器错误,并提供了一个有用的对象来解析它们。

https://github.com/substack/node-syntax-error