1

我写了一个节点程序来抓取 url 内容。由于有很多东西被扔进和扔出机器,我有一个进程监听器uncaughtException,只是将错误结果扔到日志文件中,而不是让它杀死守护进程。最近翻阅了那个日志文件,我发现有些不对劲。这是一个经常抛出的错误和堆栈跟踪:

堆栈跟踪:

ReferenceError: GEL 未在 Timer.callback (timers.js: 83:39)

我知道的信息量不是很大。自然,我将我的源代码 rgrep 为GEL. 然后我将我所有的节点模块依赖项(没有那么多)用于GEL. 然后我为GEL. 然后我 rgrep v8 for GEL. 然后我停下来问 StackOverflow ......我做错了什么?(我没有在我的代码中做任何不合理的事情,比如尝试评估随机字符串或诸如此类的东西。)

重要提示:节点 v 0.4.9 ...认为它也会被抛出 v 0.4.10

4

1 回答 1

3

我解决了这个问题。这实际上是我的代码的错。我正在调试的代码正在使用该jsdom模块,该模块正在解释我正在抓取的网页中的 javascript。我通过改进去除标签并向我的调用传递了一个额外的参数来解决了我regex遇到<script>features问题jsdom.env

jsdom.env({
  html: myHtml, 
  done: myCallback,
  url: url,
  features : {
        FetchExternalResources       : [],
        ProcessExternalResources     : false
        }
});
于 2011-08-23T22:13:51.170 回答