Доступ к данным из топора ios в представлении Node.js - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь распечатать данные из запроса топора ios в шаблон мопса. У меня проблемы с доступом к данным. Я новичок в этом, и я думаю, что это как-то связано с передачей моего объекта данных в маршрут.

Серверная часть

    axios.get("https://www.worldometers.info/coronavirus/")
        .then(res => {
            const data = [];
            const $ = cheerio.load(res.data);
            $('.maincounter-number').each((index, element) => {
                const numberData = $(element).text();
                data[0] = {numberData: numberData};
                //console.log(data);
            });
        }).catch(err => {
        console.log("Error fetching and parsing data: ", err);
    });


app.get("/", (req, res) => {
    res.render('index', {title: 'Home', data: data});

});

Внешний интерфейс

  p #{data.numberData}

1 Ответ

1 голос
/ 13 апреля 2020

Есть проблема со сферой. Переменная данных связана с локальной областью действия.

async function scrapeWorldOMeter(){
   try{
       const worldOMeterResponse = await axios.get("https://www.worldometers.info/coronavirus/");
       const data = [];
       const $ = cheerio.load(worldOMeterResponse.data);
       $('.maincounter-number').each((index, element) => {
       const numberData = $(element).text();
       data[0] = {numberData: numberData};
       return data[0];
   });

   }
   catch(err){
       throw new Error(`Can't scrape WorldOMeter ${err}`)
   }
}


app.get("/", async(req, res) => {
const data = await scrapeWorldOMeter()
res.render('index', {title: 'Home', data});
});
...