Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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 NodeJS无法读取属性';推动';未定义的_Javascript_Node.js_Push_Puppeteer - Fatal编程技术网

Javascript NodeJS无法读取属性';推动';未定义的

Javascript NodeJS无法读取属性';推动';未定义的,javascript,node.js,push,puppeteer,Javascript,Node.js,Push,Puppeteer,我有一个函数,可以在页面上抓取一些数据,并将它们存储在一个变量“result”中。有几个页面,因此函数包含在“for”循环中 } 之后,我需要将结果存储在另一个包含所有数据的变量(循环)中。在这里,我使用了“推”,但我得到了一个错误: 无法读取未定义的属性“push” 让所有_结果; 试一试{ let query='myurl' wait page.goto(查询,{waitUntil:“networkidle2”}); 让max_pages=parseInt(等待page.$eval('.pa

我有一个函数,可以在页面上抓取一些数据,并将它们存储在一个变量“result”中。有几个页面,因此函数包含在“for”循环中

}

之后,我需要将结果存储在另一个包含所有数据的变量(循环)中。在这里,我使用了“推”,但我得到了一个错误:

无法读取未定义的属性“push”

让所有_结果;
试一试{
let query='myurl'
wait page.goto(查询,{waitUntil:“networkidle2”});
让max_pages=parseInt(等待page.$eval('.pagination>li:n最后一个子项(2)>a>.button_标签',o=>o.innerText));
对于(设i=1;i
以下代码正在运行。正如建议的那样,我将“all_results”声明为一个数组

    let all_results = [];
    try{
       let query = 'myurl'
       await page.goto(query, { waitUntil: "networkidle2" });
       let max_pages = parseInt(await page.$eval('.pagination > li:nth-last-child(2) > a > .button__label', o => o.innerText));
       for(let i = 1; i < max_pages+1; i++){
           console.log('page ',i,' of ',max_pages);
           try{
               const result = await PageScraping(page, query);
               query = `urlpage${i+1}`;
               all_results.push(result);
               console.log(all_results);

            } catch(e){
               console.log('ERROR: could not reach landing page',e.message);
           }
       }

   } catch(error) {
       console.log('ERROR: could not reach landing page',error.message);

   } finally {
       try{
           await browser.close();
        }catch(browser_error){
            console.log('ERROR cant close browser??', browser_error.message)
        }
    }
}
让所有_结果=[];
试一试{
let query='myurl'
wait page.goto(查询,{waitUntil:“networkidle2”});
让max_pages=parseInt(等待page.$eval('.pagination>li:n最后一个子项(2)>a>.button_标签',o=>o.innerText));
对于(设i=1;i
所有结果是什么?我看不到它在任何地方被定义。你能告诉我们你在哪里定义了
all\u results
变量吗?它试图从那里读取它,因为方法只是具有函数类型的属性将所有结果定义为数组,push方法是用于数组的。我刚刚编辑了包含所有结果定义的问题。您声明了
所有结果
,但似乎从未给它赋值-因此它当然是
未定义的
,这就是错误告诉你的。如果希望它保存数组,则必须在某个点指定适当的数组值。
    let all_results;
    try{
       let query = 'myurl'
       await page.goto(query, { waitUntil: "networkidle2" });
       let max_pages = parseInt(await page.$eval('.pagination > li:nth-last-child(2) > a > .button__label', o => o.innerText));
       for(let i = 1; i < max_pages+1; i++){
           console.log('page ',i,' of ',max_pages);
           try{
               const result = await PageScraping(page, query);
               query = `urlpage${i+1}`;
               all_results.push(result);
               console.log(all_results);

            } catch(e){
               console.log('ERROR: could not reach landing page',e.message);
           }
       }

   } catch(error) {
       console.log('ERROR: could not reach landing page',error.message);

   } finally {
       try{
           await browser.close();
        }catch(browser_error){
            console.log('ERROR cant close browser??', browser_error.message)
        }
    }
}
    let all_results = [];
    try{
       let query = 'myurl'
       await page.goto(query, { waitUntil: "networkidle2" });
       let max_pages = parseInt(await page.$eval('.pagination > li:nth-last-child(2) > a > .button__label', o => o.innerText));
       for(let i = 1; i < max_pages+1; i++){
           console.log('page ',i,' of ',max_pages);
           try{
               const result = await PageScraping(page, query);
               query = `urlpage${i+1}`;
               all_results.push(result);
               console.log(all_results);

            } catch(e){
               console.log('ERROR: could not reach landing page',e.message);
           }
       }

   } catch(error) {
       console.log('ERROR: could not reach landing page',error.message);

   } finally {
       try{
           await browser.close();
        }catch(browser_error){
            console.log('ERROR cant close browser??', browser_error.message)
        }
    }
}