我有这段代码可以使用 API 从第三方网站下载新闻提要。其设置为每 5 秒运行一次,并提取可能发生的任何新闻事务。问题似乎出在没有发生新事务时。
通过添加 process.on('uncaught exception', function(error){ console.log("hmph") }) cron 作业可以在 5 秒后继续,所以我很想保持原样;但是,我添加了 console.log("hmph") ,现在我很困惑。
第一次,控制台会写hmph。5 秒后它会写 hmph hmph
等等。我知道我一定错过了一些东西,但我不太确定它是什么。我已经尝试在 else 语句中执行 request.end() 但错误仍然会触发。
没有 process.on('uncaught...') 抛出的错误是:
events.js:71 抛出参数[1];// 未处理的“错误”事件 ^ 错误:在 TCP.onread (net.js:403:27) 的 Socket.socketOnData (http.js:1367:20) 处解析错误
使用 proccess.on('uncaught...') console.log(error) 是:
{ [错误:解析错误] bytesParsed:161,代码:'HPE_INVALID_CONSTANT'}
如何正确处理此错误?
缩写代码:
var job = new cronJob('*/5 * * * * *', function(){
var request = http.get({
host: 'www.example.com',
path: '/news_feed?apicode=myapicode',
port: 80,
headers: { 'accept-encoding': 'gzip' }
})
request.on('response', function(response){
if (response.statusCode == 200){
// gunzip response, save response to mongodb
}
else
{
// here is where the error is occuring
process.on('uncaughtException',function(error){
console.log(error);
console.log("hmph");
}
});
}, null, true);