我写了一个节点程序来抓取网址内容。由于很多东西被抛入和抛出机器,我有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上被抛出
答案 0 :(得分:3)
我弄明白了这个问题。事实上我的代码是错的。我正在调试的代码是使用jsdom
模块,它正在解释我正在抓取的网页中的javascript。我修改了我遇到的问题,改进了我的regex
,删除了<script>
个标记,并向我的features
调用传递了额外的jsdom.env
个参数:
jsdom.env({
html: myHtml,
done: myCallback,
url: url,
features : {
FetchExternalResources : [],
ProcessExternalResources : false
}
});