首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nodejs从承诺异步函数返回对象并在网页上显示它?

Nodejs从承诺异步函数返回对象并在网页上显示它?
EN

Stack Overflow用户
提问于 2019-11-03 14:44:14
回答 1查看 60关注 0票数 0

我是NodeJS的新手,我想要构建一个自定义的web刮刀应用程序--到目前为止,我已经开始使用刮刀器了,但是我想在网页上呈现返回的对象。

刮板创建一个包含视频数组的对象--这个数组是我想要在浏览器中显示的东西。

到目前为止,我已经成功地使用console.log()呈现了结果,但我希望更进一步,并将其显示在网页上。有人知道我是怎么做到的吗?

index.js

代码语言:javascript
复制
const webscraping = require("./webscraping");
const express = require('express');
const app = express();

const pageURL = "https://example.com";

webscraping(pageURL).then(dataObj => {console.log(dataObj)})

scraper.js

代码语言:javascript
复制
const puppeteer = require("puppeteer");

const webscraping = async pageURL => {
    const browser = await puppeteer.launch({
        headless: true,
        args: ["--no-sandbox"]
    });
    const page = await browser.newPage();
    let dataObj = {};

    try {
        await page.goto(pageURL);

        const videoCollection = await page.evaluate(() => {
            const videoList = $('.cmn-list-product01 > li');
            const maxPages = $('.cmn-box-tabMain01').find(".next").prev().text();
            const curPage = $('.cmn-box-tabMain01').find(".col04").find(".on").text();
            let pageData = {
                all_pages: maxPages, current_page: curPage
            };
            let newVideoList = [];
            videoList.each(function () {
                const id = $(this).attr("data-content_id");
                const title = $(this).find('a').find('dl').find('dt').text();
                const image = $(this).find('.lazy').attr("data-original");

                newVideoList.push({
                    id,
                    title,
                    image
                });
            });

            const keywords = ["cooking", "tutorial"];
            const filteredVideos = newVideoList.filter(item => keywords.some(el => item.title.toLowerCase().includes(el)));
            filteredVideos.unshift(pageData);
            return filteredVideos;
        });

        dataObj = {
            total: videoCollection.length,
            videoCollection
        };
    } catch (e) {
        console.log(e)
    }

    browser.close();
    return dataObj;
};

module.exports = webscraping;

EN

回答 1

Stack Overflow用户

发布于 2019-11-03 14:48:30

你需要的是一个模板引擎。看看这里。我个人更喜欢EJS

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58681249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档