Node.js、Express、EJS - 刷新变量以在页面上输出
Node.js, Express, EJS - refresh variable to output on page
所以我设置了一个 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>
^输出变量值然后刷新span
您以错误的方式调用了 setInterval,它希望第一个参数是一个函数。
setInterval(updateCPU, 2000);
顺便说一下,如果您想更新 CPU 用法,只需在 x 秒后刷新您的页面即可。或者创建一个 cpu 端点,该端点 return CPU 使用 JSON 格式并在 x 秒后点击此端点以更新 CPU 使用而不刷新它
所以我设置了一个 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>
^输出变量值然后刷新span
您以错误的方式调用了 setInterval,它希望第一个参数是一个函数。
setInterval(updateCPU, 2000);
顺便说一下,如果您想更新 CPU 用法,只需在 x 秒后刷新您的页面即可。或者创建一个 cpu 端点,该端点 return CPU 使用 JSON 格式并在 x 秒后点击此端点以更新 CPU 使用而不刷新它