2012-01-29 79 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