遇到神秘的参考错误(使用节点v 0.4.9)

时间:2011-08-12 02:56:37

标签: node.js referenceerror

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

堆栈追踪:

  

ReferenceError:未定义GEL       在Object._onTimeout   (http://www.freep.com/article/20110809/ENT04/110809051/1001/news:undefined:undefined:2:25)       在Timer.callback(timers.js:83:39)

我知道的信息量不大。当然,我抓住了GEL的源代码。然后,我为GEL搜索了所有节点模块依赖项(并没有那么多)。然后我为GEL建立了节点。然后我为GEL rgrepped v8。然后我停下来问StackOverflow ......我做错了什么? (我在代码中没有做任何太不合理的事情,比如试图评估随机字符串或诸如此类的东西。)

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

1 个答案:

答案 0 :(得分:3)

我弄明白了这个问题。事实上我的代码是错的。我正在调试的代码是使用jsdom模块,它正在解释我正在抓取的网页中的javascript。我修改了我遇到的问题,改进了我的regex,删除了<script>个标记,并向我的features调用传递了额外的jsdom.env个参数:

jsdom.env({
  html: myHtml, 
  done: myCallback,
  url: url,
  features : {
        FetchExternalResources       : [],
        ProcessExternalResources     : false
        }
});