나는 노드 콜 서버를 사용하여 서버로 HTTP 호출을 실행합니다. 나쁜 일이 발생하면 서버를 정상적으로 종료하는 권장 방법이 있습니까? 어떻게 든 서버를 계속 실행해야합니까?Nodejs/express, 정상적으로 종료
I.E. 잡히지 않는 예외에서 서버가 멈 춥니 다. 저는 이것이 연결된 클라이언트를 죽이고 응답을 돌려주지 않을 것이라고 생각합니다.
내가해야 : 나는 서버가 죽는 (다음 다시 시작) 할 수 있도록하기 전에 모든 HTTP 연결
- 가 완료 될 때까지 대기합니다.
- 아니면 서버가 죽지 않도록 시도해야합니까?
이 적절한가요?
process.on('exit', function() {
console.log('About to exit, waiting for remaining connections to complete');
app.close();
});
이 경우 서버를 정의되지 않은 상태로 둠으로써 서버가 나머지 연결을 계속 끝내는 오류가 발생했을 수 있습니다.
오류를 계속 처리 할 수있는 좋은 방법이 있습니까? 아니면 서버를 종료하고 다시 시작해야합니까?
위대한 설명입니다. 내가 아직도 명확하지 않은 한 가지. '예기치 않은 예외가 발생하면 응용 프로그램이 정의되지 않은 상태임을 기억하는 것이 중요합니다. 문제 요청이 완료되지 않고 앱이 다시 시작되지 않을 수도 있습니다. ' 마치 앱을 호출해서는 안되는 것처럼 소리가납니다.닫기(); 프로세스 '출구'에. 참된? – lostintranslation
'process''exit' 핸들러에서'app.close()'를 호출하는 것은 무의미합니다 : [docs say] (http://nodejs.org/api/process.html#process_event_exit) * "메인 이벤트 루프는 'exit'콜백이 끝난 후에 더 이상 실행되지 않습니다. "* 즉, exit 이벤트는 함수가 반환 된 후에 프로세스 **가 종료 할 것임을 알려줍니다. 네트워크 청취자를 닫는 것은 다음 틱이 없기 때문에 무의미합니다. 들어오는 연결을 받아들이는 코드는 절대 실행할 기회가 없습니다. – josh3736
끝내 주셔서 고마워요! – lostintranslation