2012-01-29 66 views
0

嗨我想创建聊天使用node.js 我在http://chat.nodejs.org/ 我看到的例子我已经尝试过它,它的工作原理,但我怎样才能删除/删除数据服务器使用间隔时间像在JavaScript中,而不必重新启动node.js ?/终端提示.... 例如:
时间:
17:14
17时12分
福音16:13
15:11
14时17
如何使用间隔时间/ settimeout从服务器node.js删除/删除数据?

function del(){ 
if(time<timenow-1000){delete time;}} 

setInterval("del()",10000); 

我想删除两个多小时前的数据较少使用间隔时间每一小时... ...感谢

+0

'setInterval'是间隔运行代码的正确方法,但您已经在使用它。那么问题是什么? – 2012-01-29 06:55:15

+0

我的问题我不能删除它如何删除服务器上的数据?如果你尝试聊天应用程序http://chat.nodejs.org如果你发送数据,数据将推入服务器..我将从头说明细节首先,我将使用命令提示符(win)运行node.js ..我使用node server.js命令调用它。然后打开我的浏览器http:\\ localhost:8001它将打开html表单以供chating使用。提交表单和数据将推入服务器,我关闭mybrowser,我打开新的另一个浏览器和数据仍然存在..尽管我关闭我的浏览器数据在服务器将不会被删除/删除,直到我关闭命令提示符窗口..如何删除它? – ankifreeze 2012-01-29 08:12:06

回答

2

首先,我会强烈建议不要使用您使用的是需要一个eval字符串setInterval超载。相反,总是使用需要回调的版本。例如:

setInterval(1000, function() { 
    // do something 
}); 

看看源,你会看到消息存储在messages数组中: https://github.com/ry/node_chat/blob/master/server.js

你的功能只需要检查这个数组并删除其时间戳较旧的邮件比你想要的日期。例如:

setInterval(1000, function() { 
    while (messages.length && messages[0].timestamp < someTime) { 
    messages.shift(); 
    } 
}); 

这将保持删除最早的消息,而这是年纪比someTime,这是一个时间,你将需要指定。

+0

是的,你是对的...它现在工作...我忘了所有的邮件保存在server.js .....非常感谢你... – ankifreeze 2012-01-31 07:33:43

+0

@ankifreeze如果这是正确的,你会介意接受回应作为正确答案?这将解决这个问题。 – 2012-02-01 12:38:29

+0

嗨对不起,我忘了三年前,我已经接受你的正确答案 – ankifreeze 2015-12-12 08:59:55