Вызов нескольких функций в одном вызове маршрута express? - PullRequest
0 голосов
/ 14 июля 2020

Я создал функцию очистки веб-страниц с помощью cheerio. js, которую я хочу вызывать, когда пользователь открывает домашнюю страницу. Я заставил его работать с одной функцией, но на самом деле у меня есть 3 функции очистки, которые делают несколько разные вещи. Как мне добавить эти функции в мой вызов маршрута на домашнюю страницу вместе с первым вызовом функции? (в основном я хочу, чтобы все данные были очищены при открытии пользователем домашней страницы)

Я также не очень хорошо знаком с async / await или обещаниями и заставил этот код работать, следуя примерам в Интернете, поэтому, если что-то не так, дайте мне знать!

express вызов маршрута, который работает (index.js):

const getSUPResults = require("./routes/SUPstores");
app.use(getSUPResults);

app.get("/", async function(req, res, next){
  const result = await getSUPResults();
  res.render("index", result);
});

функция скребка ("./routes/SUPstores")

const express = require("express");
const cheerio = require("cheerio");
const { default: Axios } = require("axios");

const fetchData = async () => {
    const result = await Axios.get("http://example.com");
    return cheerio.load(result.data);
};

const getSUPResults = async () => {
    const $ = await fetchData();
    const SUPStoreInfo = [];

        $('.row > tbody > tr:contains("SUP")').each(function(i, element){
            const SUPResult = {
                "environment" : $(this).children().text(),
                "store" : $(this).children().next().text(),
                "version" : $(this).children().next().next().text()
            };
            SUPStoreInfo.push(SUPResult);
        });
        return SUPStoreInfo;
}

module.exports = getSUPResults;

Я попытался сделать что-то подобное, но мне показалось, что это вызвало только первую функцию (getSUPResults), а остальные проигнорировали. Могу ли я попробовать что-то подобное?

const getSUPResults = require("./routes/SUPstores");
const getQAResults = require("./routes/QAstores");
const getDEVResults = require("./routesDEVstores");

app.use(getSUPResults);
app.use(getQAResults);
app.use(getDEVResults);

app.get("/", async function(req, res, next){
  const SUP = await getSUPResults();
  const QA = await getQAResults();
  const DEV = await getDEVResults();
  const result = [SUP, QA, DEV];
  res.render("index", result);
});
...