2012-01-29 4 views
0

こんにちは私はnode.jsを使用してチャットを作成しようとしています 私は例を参照してくださいhttp://chat.nodejs.org/ 私はそれを試して、それが動作しますどのようにノードからノード時間を使用して?/端末プロンプト.... 例:
時刻:17時14

午後05時12分16時13

15時11
午前14時17分
インターバル時間/ settimeoutを使用してサーバーnode.jsからデータを削除/削除するにはどうすればよいですか?

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

setInterval("del()",10000); 

間隔時間を使用して1時間ごとに2時間未満のデータを削除します...ありがとう

+0

'setInterval'は、間隔を置いてコードを実行する正しい方法ですが、すでにそれを使用しています。だから何が問題なの? –

+0

私のクエスト私はそれを削除することはできません。サーバー上のデータを削除するには?あなたがチャットアプリhttp://chat.nodejs.orgを送信しようとすると、データがサーバーにプッシュされます。 ..最初に私はコマンドプロンプト(勝利)を使用してnode.jsを実行します..ノードserver.jsを使用してコマンドを呼び出します。その後、ブラウザhttp:\\ localhost:8001を開いてチャットのためにhtmlフォームを開きます。送信フォームとデータはサーバーにプッシュされ、私はmybrowserを閉じ、私は別の新しいブラウザを開き、データはまだ存在します。サーバーのブラウザデータを閉じると削除/削除されません。 ? – ankifreeze

答えて

2

最初に、setIntervalオーバーロードを使用することをお勧めします。使用するオーバーロードはeval文字列です。代わりに、常にコールバックをとるバージョンを使用してください。たとえば:

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

+0

@ankifreezeこれが正しい場合は、正解として?それはこの問題を解決するでしょう。 –

+0

こんにちは申し訳ありませんが、私は3年前に忘れました...私は正解としてあなたを受け入れました – ankifreeze

関連する問題