2011-12-14 5 views
1

저는 Node.js의 초보자이며 몇 가지 질문이 있습니다.node-js 이벤트 루프 및 범위

먼저 노드를 빈 .js 파일에서 실행하면 종료됩니다. 일부 간단한 할당을 사용하여 .js 파일에서 노드를 실행하면 노드도 종료됩니다. 내가 묻는 것은 node.js 이벤트 루프가 EventEmitter가 생성 될 때만 실행 되는가?

둘째, 현재 HTTP 요청을받을 때마다 HTTP를 사용하여 Twilio를 사용하여 SMS를 보내고 있습니다. 내가 사용하는 래퍼는 https://github.com/sjwalter/node-twilio/tree/master/lib

입니다. 새 TwilioClient를 만들면 process.exit를 호출 할 때까지 이벤트 루프가 실행됩니다. 각 HTTP 요청 처리기 내에 새로운 TwilioClient를 작성해야합니까, 아니면 .js 파일의 시작 부분에 하나를 작성하여 처리기 내에서 사용해야합니까? 차이가 있습니까?

답변

1

루비의 EventMachine과는 달리, 노드의 루프는 수동으로 닫을 필요가 없습니다. Node.js는 모든 작업이 완료되면 자동으로 종료됩니다.

염두에두고 (http 요청 처리기가 process.exit을 호출하여 수동으로 닫으려는 경우 http 요청 처리기가 영원히 또는 계속 실행됩니다.) HTTP 요청 외부에 1 개의 TwilioClient 만 만들고 http 내부에서 사용하면됩니다. 요청 (데이터베이스 핸들러와 동일한 상황).

+0

즉, node.js 이벤트 루프는 웹 브라우저의 이벤트 루프와 똑같이 작동합니다. 이벤트를 기다리는 것이 있으면 이벤트 루프가 계속 실행되고 그렇지 않으면 종료됩니다. 이런 식으로 생각하면 혼란 스러울 수 있습니다. 특히 웹 프로그래밍 경험이있는 경우. – slebetman

+0

다음은 유용한 정보를 제공합니다. http://code.danyork.com/2011/01/25/node-js-doctors-offices-and-fast-food-restaurant-understanding-event-driven- 프로그래밍/http://www.slideshare.net/sh1mmer/how-to-stop-writing-spaghetti-code – alessioalex