2014-10-17 49 views
0

我试图在任何地方找到此主题,但未成功。我有一个app.get()代码,非常简单,它可以从一个不断变化的变量中获取一个信息(“equip [id] .status”),我希望它能检查变量是否从时间变化时间。自动刷新Node.js中的'app.get()'

其他选项是在这个变量上保留一个轨迹,当它改变时再次运行app.get()。

我的代码:

这是一个我想刷新:

app1.get("/", function(req,res){ 
    id = 1; 
    res.render(__dirname + '/connected.html', {equipment: 'Esteira 1', status: equip[id].status, historico: equip[id].hist}); 
}); 

而这是那些改变 “身份”

app1.get("/open", function(req,res){ 
    id = 1; 
    equip[id].status = 'Conectado'; 
    equip[id].hist = equip[id].hist + equip[id].status; 
    var now = new Date(); 
    time = dateFormat(now,"h:MM:ss"); 
    console.log(time+" - Equipment 'Esteira 1' has connected on port 3001"); 
    res.end 
    }); 


app1.get("/closed", function(req,res){ 
    id = 1; 
    equip[id].status = 'Desconectado'; 
    equip[id].hist = equip[id].hist + equip[id].status; 
    var now = new Date(); 
    time = dateFormat(now,"h:MM:ss"); 
    console.log(time+" - Equipment 'Esteira 1' has disconnected"); 
    res.end 
    }); 
+0

并不清楚你寻求帮助与或试图完成或在'equip'变量来自于什么。 – jfriend00 2014-10-18 00:10:08

+0

所以,这实际上是我大学的一门课程,它没有简单的方法来解释整个事情。 但我想要的是:每当一个人点击一个按钮,并且'连接'设备我写它的状态,每次他们点击另一个按钮他们'断开',我也写在状态。虽然这样,我有第一次打开它时在'localhost:port /'中打开的这个页面,它完美的工作,但我更改'status',然后我需要手动刷新页面,我想不时自动执行此操作。 (希望现在更清楚) – 2014-10-18 01:35:53

+0

'equip'变量只是一个常规矩阵变量。 – 2014-10-18 01:39:28

回答

0

app.get()是一个服务器 - 而且它本身就没有改变客户端的权力。

在客户端,您需要使用JavaScript代码来定期轮询服务器(ajax)或让它通过websockets主动侦听服务器以进行更改。这样你也可以选择刷新整个页面或者只是加载相关的修改(就像这个网站一样!)。

你应该看看这些相关技术:JavaScript中,阿贾克斯,长轮询,socket.io