Node.js,Express,EJS - 刷新变量以在页面上输出

时间:2016-03-30 22:04:03

标签: javascript node.js express ejs

所以我已经设置了一个Node.js服务器并显示一个显示当前CPU使用情况的页面,现在的问题是我必须刷新整个页面以便更新变量,如果我只是通过更新变量JavaScript,它在刷新页面后直接显示正确的CPU使用率,但在间隔用完后,它只输出“undefined”。

Node.js代码:

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

^获取当前的CPU使用率

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>

^输出变量值,然后刷新范围

1 个答案:

答案 0 :(得分:1)

你正在以错误的方式调用setInterval,它期望第一个参数是一个函数。

setInterval(updateCPU, 2000);

顺便说一句,如果您想更新CPU使用率,只需在x秒后刷新页面即可。或者创建一个以JSON格式返回CPU使用率的cpu端点,并在x秒后点击此端点以更新CPU使用情况而不刷新它