2016-03-30 26 views
0

Bu yüzden bir Node.js sunucusu kurdum ve mevcut CPU kullanımını gösteren bir sayfa görüntüledim, sorun şu ki tüm sayfayı yenilemek zorundayım değişkenin güncellenmesi için ve eğer değişkeni JavaScript üzerinden güncellediğimde, sayfayı yeniledikten sonra doğru CPU kullanımını gösterir, ancak aralık bittikten sonra, sadece "tanımsız" çıktılar.Node.js, Express, EJS - çıktı değişkeni sayfa

node.js Kodu:

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

^Mevcut CPU kullanımını

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

^EJS şablonuna değerin atanması

default.ejs kodu alma:

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

^Outpu Değişken değeri ting ve sonra da

cevap

1

Açıklığı yenileme, yanlış bir şekilde setInterval çağırıyorsunuz, ilk bağımsız değişkenin bir işlev olmasını bekler.

setInterval(updateCPU, 2000); 

Bu arada, CPU kullanımını güncellemek istiyorsanız, sayfanızı x saniye sonra yenilemeniz yeterlidir. Veya CPU kullanımını JSON biçiminde döndüren bir cpu uç noktası oluşturun ve CPU kullanımını yenilemeden x saniye sonra bu son noktaya getirin