Как автоматически обновлять индексную страницу с помощью маршрута "/", используя разные параметры рендеринга каждые 5 минут или около того с помощью node.js? - PullRequest
0 голосов
/ 07 мая 2019

Как мне автоматизировать рендеринг страницы с разными параметрами рендеринга каждые 5 минут или около того? Можно ли сделать так, чтобы я мог сидеть на странице индекса и указанные поля обновлялись бы через указанные интервалы?

В настоящее время мне удалось отобразить эту информацию только с помощью различных маршрутов "/" и "labs" и путем ручного доступа к ним. Данные, которые я пытаюсь изменить с каждым GET, находятся между uniTimes [0] .lectures и uniTimes [1] .labs, а также при каждом рендеринге я меняю данные в переменных blockHeights и verticalPosition.

Получить запрос, который указывает на страницу индекса:

router.get('/', function(req, res, next) {

// Lectures/Lab Works times object array

  var uniTimes = [
    {
      lectures: [
        {
          title: "Information System Security",
          classroom: "503a.",
          start: "1995-12-17T08:00:00",
          end: "1995-12-17T09:15:00"
        },
        {
          title: "Project Management",
          classroom: "117a.",
          start: "1995-12-17T08:30:00",
          end: "1995-12-17T09:30:00"
        },
        {
          title: "Audiovisual Art",
          classroom: "228a.",
          start: "1995-12-17T09:45:00",
          end: "1995-12-17T12:00:00"
        } 
      ]
    },
    {
      labs: [
        {
          title: "Graphic Design",
          classroom: "505a.",
          start: "1995-12-17T09:15:00",
          end: "1995-12-17T10:15:00"
        },
        {
          title: "Special Effects",
          classroom: "228a.",
          start: "1995-12-17T11:30:00",
          end: "1995-12-17T12:00:00"
        },
        {
          title: "Robotics",
          classroom: "513a.",
          start: "1995-12-17T08:45:00",
          end: "1995-12-17T09:30:00"
        }
      ]
    }
  ]

  //Displayed lecture/lab work block size
  var blockHeights = ["250px", "200px", "450px"];

  //Displayed lecture/lab work block position
  var verticalPosition = ["0px", "100px", "350px"];

  res.render('index', { title: 'Express Application', subTitle: 'Student Timetables Display', uniTimes: uniTimes[0].lectures, blockHeights: blockHeights, verticalPosition: verticalPosition });

});

Указатель страницы Ejs:

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1><%= title %></h1>
    <p>Welcome to <%= subTitle %></p>
    <a href="/admin">Go to admin panel</a>
    <br>
    <br>
    <% for(var i = 0; i < uniTimes.length; i++) { %>
      <div style="float:left; width: 150px; margin-right: 25px; height: <%= blockHeights[i] %>; background-color: red; margin-top: <%= verticalPosition[i] %>">
        <h3><%= uniTimes[i].title %></h3>
        <h4><%= uniTimes[i].classroom %></h4>
        <h4><%= uniTimes[i].start %></h4>
        <h4><%= uniTimes[i].end %></h4>
      </div>
    <% } %>
  </body>
</html>
...