2012-01-29 2 views
0

안녕하세요, node.js를 사용하여 채팅을 만들려고합니다 예를 참조하십시오. http://chat.nodejs.org/ 나는 그것을 시도했지만 작동하지만 어떻게 node.js를 다시 시작하지 않고 자바 스크립트 에서처럼 간격 시간을 사용하여 서버에서 데이터를 삭제/삭제할 수 있습니까? ?/터미널 프롬프트 .... 예 :
시간 :
17시 14분
17시 12분
16시 13분
15시 11분
14시 17분
interval/settimeout을 사용하여 노드 node.js에서 데이터를 제거/삭제할 수 있습니까?

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

setInterval("del()",10000); 

간격 시간을 사용하여 2 시간 미만의 데이터를 삭제하려는 경우 ... 감사합니다.

+0

'setInterval'은 간격을두고 코드를 실행하는 올바른 방법이지만 이미 사용하고 있습니다. 질문이 뭐니? –

+0

내 questi 내가 그것을 삭제할 수 없습니다. 서버에서 데이터를 삭제하려면? 당신이 http://chat.nodejs.org 채팅 응용 프로그램을 시도하는 경우 데이터를 보내면 데이터가 서버에 밀어 넣을 것입니다 .ok 내가 처음부터 세부 사항을 설명합니다 .. 먼저 명령 프롬프트 (win)를 사용하여 node.js를 실행합니다 ... 노드 server.js를 사용하여 호출합니다. command ... then 브라우저 http : \\ localhost : 8001을 열면 채팅을위한 html 형식이 열립니다 .I 제출 양식과 데이터가 서버에 푸시됩니다. 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

관련 문제