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>