Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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
Node.js 将响应从puppeter传递到API_Node.js_Cron_Puppeteer - Fatal编程技术网

Node.js 将响应从puppeter传递到API

Node.js 将响应从puppeter传递到API,node.js,cron,puppeteer,Node.js,Cron,Puppeteer,我想从Puppeter打开链接,从网络获取API链接,每3分钟传递到我们的API 错误 如果我控制台link变量,它将显示链接,但作为回报,它是空的 领导者 const puppeteer = require('puppeteer'); let link = ''; var url = async () => { const browser = await puppeteer.launch({ headless: false }) const page = await brow

我想从Puppeter打开链接,从网络获取API链接,每3分钟传递到我们的API

错误 如果我控制台link变量,它将显示链接,但作为回报,它是空的

领导者

const puppeteer = require('puppeteer');

let link = '';
var url = async () => {

const browser = await puppeteer.launch({
    headless: false
})
const page = await browser.newPage()
await page.goto("https://www.pgatour.com/leaderboard.html", {
    waitUntil: 'networkidle2'
});

let urls = await page.on('response', async (response) => {
    if (response.url().includes("leaderboard.json")) {
        console.log('XHR response received');
        const data = await response.buffer()
        link = response.url(); // ========> link get if I console it
        browser.close();

    }
});

return link;  //==================== PROBLEM================= link is empty
}
cron.jscron将在3分钟后打开链接

const cron = require("node-cron");
const axios = require("axios");
var leader = require('leader');

cron.schedule("* 3 * * *", function () {
console.log("running a task 3 minute")
axios.get('/link', {
    params: {
      link: leader  //<<<< ========================== here I want to pass the link from leader.js file
    }
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  }) 
})
const cron=require(“节点cron”);
常量axios=要求(“axios”);
var leader=require(‘leader’);
cron.schedule(“*3***”,函数(){
log(“运行任务3分钟”)
axios.get(“/link”{
参数:{
link:leader/如果在leader.js模块中创建getLeader()函数,如下所示:

leader.js

const puppeteer = require('puppeteer');

async function getLeader() {
    const browser = await puppeteer.launch({
        headless: true
    })
    console.log("Loading page...");
    const page = await browser.newPage()
    await page.goto("https://www.pgatour.com/leaderboard.html", {
        waitUntil: 'networkidle2'
    });

    return new Promise((resolve, reject) => { 
        page.on('response', async (response) => {
            if (response.url().includes("leaderboard.json")) {
                console.log('XHR response received');
                link = response.url(); // ========> link get if I console it
                browser.close();
                console.log("Link:", link);
                resolve(link);
            }
        });
    })
}

module.exports = { getLeader };
然后在cron模块中:

cron

const cron = require("node-cron");
const axios = require("axios");
const { getLeader } = require('./leader.js');

cron.schedule("*/3 * * * *", async function () {
    console.log("running a task every 3 minutes");

    let leader = await getLeader();
    console.log("Cron job: Leader:", leader);
    axios.get('/link', {
        params: {
            link: leader  //<<<< ========================== here I want to pass the link from leader.js file
        }
    })
    .then(function (response) {
        console.log(response);
    })
    .catch(function (error) {
        console.log(error);
    }) 
})
const cron=require(“节点cron”);
常量axios=要求(“axios”);
const{getLeader}=require('./leader.js');
cron.schedule(“*/3****”,异步函数(){
log(“每3分钟运行一次任务”);
let leader=等待getLeader();
log(“Cron作业:Leader:”,Leader);
axios.get(“/link”{
参数:{
链接:leader//