• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyrenderowanie wyscrappowanych danych Cheerio, express

42 Warsaw Coding Academy
0 głosów
142 wizyt
pytanie zadane 3 stycznia 2020 w JavaScript przez payload32 Nowicjusz (120 p.)

Do requesta przekazuje link, następnie cheerio scrappuje mi z niego odpowiednie dane, które zapisuje sobie w zmiennej data - W console logu wszystko pokazuje się prawidłowo

 

  Następnie chce je wyrenderować w EJS'ie jak mogę to zrobić?

router.get('/', (req, res) => {

    res.render('index', {

        info: null

    });

});


router.post('/', (req, res) => {

    var name = req.body.name;


    request(name, (err, response, body) => {

        if (!err && response.statusCode == 200) {

            const $ = cheerio.load(body);


            $('.product ul').each((i, el) => {

                const name = $(el)

                    .find('.product_name')

                    .text();

                const dane = $(el)

                    .find('.product_value')

                    .text();

                var data = `${name} ${dane}`;

                console.log(data);

            });

        }

        res.render('index', {

            info: data

        });

    });

});

To mi zwraca błąd data undefined.

Tak to wyświetlam:

        <% if(info !== null){ %>
        <p><%= info %></p>
        <% } %>

Z góry dzięki za pomoc

1 odpowiedź

0 głosów
odpowiedź 4 stycznia 2020 przez ScriptyChris Mędrzec (190,190 p.)

Zmienna data jest lokalnie tworzona w callbacku do metody each, dlatego w linii 48, gdy już przypisujesz ją do property info jest undefined. Jeśli iterujesz po jakiejś tablicy (kolekcji, liście), to zmapuj sobie zawartość zmiennej data na zewnątrz i dopiero to przekaż do property info.

Podobne pytania

+1 głos
0 odpowiedzi 447 wizyt
+1 głos
1 odpowiedź 253 wizyt
0 głosów
1 odpowiedź 273 wizyt

93,382 zapytań

142,381 odpowiedzi

322,539 komentarzy

62,738 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...