node.js & express.js & Liquid | Динамический таймер

Когда я нажимаю кнопку перезагрузки или выключения, я хочу, чтобы меня перенаправили в / home, чтобы он обновлял переменную каждую секунду, чтобы она выглядела более динамичной. Но, очевидно, я не могу вызвать функцию res.redirect дважды. Также я не хочу обновлять страницу каждую секунду, но так как я использую здесь жидкость, а не что-то вроде Angular2, я не знаю, как сделать этот таймер таким динамичным, каким я хотел его видеть. Там в любом случае?

Очевидно, мой код дает сбой, но он может дать вам представление о том, что я хочу сделать.

app.post при нажатии кнопки:

app.post('/home/command', require('connect-ensure-login').ensureLoggedIn(), 
(req, res) => {
  let cmd = req.query.cmd;
  console.log("cmd = " + cmd);
  if (cmd == "restart"){
    console.log("restart");
    homeStatus = "System wird Neugestartet in: ";
    //shellexec.execute('sleep 10; sudo shutdown -r now');
  } else if(cmd == "shutdown") {
    homeStatus = "System wird Heruntergefahren in: ";
    console.log("shutdown");
    //shellexec.execute('sleep 10; sudo shutdown now');
  }
  if (homeStatus != ""){
    let res_old;
  setInterval(function() {
   homeStatus = homeStatus + statustime + " Sekunden!";
   res_old = res;
   res.redirect('/home');
   res = res_old;
  statustime = statustime - 1;
  }, 1000);
}
});

app.get of / home:

app.get('/home', require('connect-ensure-login').ensureLoggedIn(),
  function(req, res){
    shelltimes = shelltimeDB.getAllTimes();
  res.
    render("index", {
      contentPath: "content/home",
      page:{title:"Home"},
      site:{title: mainTitle},
      shelltimes: shelltimes,
      services: services,
      homeStatus: homeStatus
    });
});

home.liquid:

<div class="homeContainer">
  <div class="jumbotron">
    <div class="jumbotronContent">
      <h1>Home</h1>
      {% if homeStatus != "" %}
        <p class="status">{{ homeStatus }}</p>
      {% endif %}
      <hr>
      <div class="section">
        <form method="POST" action="/home/command?cmd=restart">
          <input class="txtInput" type="submit" value="Restart Server"/>
        </form>
      </div>
      <div class="section">
      <form method="POST" action="/home/command?cmd=shutdown">
        <input class="txtInput" type="submit" value="Shutdown Server"/>
      </form>
      </div>
      <div class="section">
      {% for time in shelltimes %}
        <p>Uptime: {{ time.uptime }}</p>
      {% endfor %}
      </div>
    </div>
  </div>
</div>

0 ответов

Другие вопросы по тегам