2016-03-30 4 views
0

Таким образом, я настроил сервер Node.js и отобразил страницу, показывающую текущее использование ЦП, теперь проблема заключается в том, что я должен обновить всю страницу для переменной, которую нужно обновить, и если я просто обновляю переменную с помощью JavaScript, она показывает правильное использование ЦП сразу после обновления страницы, но после того, как интервал истекает, он просто выводит «undefined».Node.js, Express, EJS - переменная обновления для вывода на странице

Node.js Код:

var cpuusage = 0; 
var percent = require('cpu-percent'); 
percent(function(err,percent){ 
    if(err) { }else{ 
     cpuusage = Math.round(percent); 
    } 
}); 

^Получение текущего использования процессора

app.get("/", function (req, res) { 
    res.render("default.ejs", { 
     "cpu":cpuusage 
    }); 
}); 

^Присвоение значения для шаблона EJS

default.ejs код:

<b>CPU</b>: <span id="showCpu"><%= cpu %></span>% <br> 
<script> 
    function updateCPU(){ 
     document.getElementById("showCpu").innerHTML="<%= cpu %>"; 
    } 
    setInterval("updateCPU()", 2000); 
</script> 

^Outpu tting значение переменной, а затем обновление диапазона

ответ

1

Вы неправильно вызываете setInterval, он ожидает, что первым аргументом будет функция.

setInterval(updateCPU, 2000); 

Кстати, если вы хотите обновить использование ЦП, просто обновите страницу через x секунд. Или создайте конечную точку процессора, которая возвращает использование ЦП в формате JSON и ударит эту конечную точку через x секунд, чтобы обновить использование ЦП без обновления.

Смежные вопросы