Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ChereIO each()函数的行为异常_Javascript_Node.js_Web Scraping_Deployment_Cheerio - Fatal编程技术网

Javascript ChereIO each()函数的行为异常

Javascript ChereIO each()函数的行为异常,javascript,node.js,web-scraping,deployment,cheerio,Javascript,Node.js,Web Scraping,Deployment,Cheerio,我有一个代码,它可以删除特定的网页。我用木偶演员+干杯来做这件事。在我的笔记本电脑上,代码工作得很好。但在将其部署到VDS后,cheerio each()选择器开始异常工作。(但它在我的笔记本电脑上仍然可以正常工作)。问题在于VDS上出现以下错误: (节点:28544)未处理的PromisejectionWarning:TypeError:无法读取未定义的属性“trim” 在节点处。(/home/ubuntu/handbot/liveMonitoring.js:211:82) 在initiali

我有一个代码,它可以删除特定的网页。我用木偶演员+干杯来做这件事。在我的笔记本电脑上,代码工作得很好。但在将其部署到VDS后,cheerio each()选择器开始异常工作。(但它在我的笔记本电脑上仍然可以正常工作)。问题在于VDS上出现以下错误:

(节点:28544)未处理的PromisejectionWarning:TypeError:无法读取未定义的属性“trim” 在节点处。(/home/ubuntu/handbot/liveMonitoring.js:211:82) 在initialize.exports.each(/home/ubuntu/handbot/node_modules/cheerio/lib/api/traversing.js:300:24) 在节点处。(/home/ubuntu/handbot/liveMonitoring.js:182:29) 在initialize.exports.each(/home/ubuntu/handbot/node_modules/cheerio/lib/api/traversing.js:300:24) 在liveMonitoring(/home/ubuntu/handbot/liveMonitoring.js:175:28) 在进程中。_tick回调(内部/process/next_tick.js:68:7) (节点:28544)未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于在没有catch块的异步函数中抛出,或者拒绝未使用.catch()处理的承诺。(拒绝id:1) (节点:28544)[DEP0018]弃用警告:未处理的承诺拒绝已弃用。将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程

最有趣的一点是,有时错误会消失(似乎没有错误发生的模式)。 我试图通过重新安装node js来解决这个问题,但没有成功。问题不在我的代码中(因为它可以在我的笔记本电脑上工作,有时甚至可以在vds上工作)。我认为每个()函数的导出都有一些问题。由于错误消息的原因,系统中发生了一些错误

/home/ubuntu/handbot/node_modules/cheerio/lib/api/traversing.js:300:24

traversing.js的代码(298-302行):

`

提前谢谢你!
`

通过更改以下代码行,问题得以解决:

page.on('request', req => {

 if(['image', 'stylesheet', 'font'].indexOf(req.resourceType()) !== -1)       
   req.abort();
 else 
   req.continue();

})
有以下几项:

page.on('request', interceptedRequest => {

     if (interceptedRequest.url().endsWith('.png') || interceptedRequest.url().endsWith('.jpg') || interceptedRequest.url().endsWith('.css'))

         interceptedRequest.abort();
     else

         interceptedRequest.continue();
});
并放置
wait page.goto(url)在以上代码行之后


然后将选项“networkidle0”添加到
页面。转到(url)

是否阅读了错误消息的这部分:
无法读取节点处未定义的属性“trim”。(/home/ubuntu/handbot/liveMonitoring.js:211:82)
我不认为这个问题与
每个
都有任何关系,我认为它只是堆栈跟踪眼的一部分。但是我没有发现我的代码的这一部分有什么问题。最令人困惑的是,有时我的代码工作正常,有时出错。所以我真的不知道该怎么办,因为我已经升级了这个职位。谢谢你的建议
page.on('request', req => {

 if(['image', 'stylesheet', 'font'].indexOf(req.resourceType()) !== -1)       
   req.abort();
 else 
   req.continue();

})
page.on('request', interceptedRequest => {

     if (interceptedRequest.url().endsWith('.png') || interceptedRequest.url().endsWith('.jpg') || interceptedRequest.url().endsWith('.css'))

         interceptedRequest.abort();
     else

         interceptedRequest.continue();
});