2012-05-20 3 views
2

저는 heroku와 node.js에 초보입니다. 나는 작은 local.js 응용 프로그램을 가지고 있는데, heroku toolbelt에서 FOREMAN을 사용하여 내 로컬 컴퓨터에서 성공적으로 시작하고 실행할 수 있습니다. 그래도 애플 리케이션을 디버깅하는 방법을 이해하지 못한다.heroku foreman을 사용하여 node.js 앱을 디버깅하는 방법은 무엇입니까?

node-inspector 프로젝트뿐만 아니라 node.js의 Eclipse 디버거가 있음을 알 수 있습니다. 하지만 나는 포먼트와 함께 이러한 작업을하는 것 같습니다.

foreman start 

포먼이 시작한 앱을 디버그 할 수없는 경우 담당 포먼의 목적은 무엇입니까?

답변

0

Foreman의 목적은 여러 프로세스로 구성 될 수있는 복잡한 응용 프로그램을 쉽게 실행할 수있게하는 것입니다. author's blog post on Foreman을 확인하십시오 :

최근에 웹 응용 프로그램이 복잡해지고있는 것을 보았습니다. 내 앱이 더 이상 하나의 웹 프로세스로 구성되지 않습니다. 나는 보통 하나 이상의 유형의 백그라운드 작업자가 서로 다른 종류의 작업을 실행하고 스케줄링을 처리하는 시계 프로세스 인 을 가지고 있습니다. 이 방식으로 앱을 분할하면 성능과 확장 성이 크게 향상됩니다. 단점이라면, 은 앱을 얻는 것이 훨씬 더 복잡해지고 부분이 모두 실행된다는 것입니다.

포어 맨은이 작업을보다 쉽게하기위한 시도입니다. foreman을 사용하면 응용 프로그램을 실행하는 데 필요한 다양한 프로세스를 선언 할 수 있습니다. Procfile을 사용합니다. 레일 응용하는시나 응용하는 Node.js를 응용 프로그램, 또는 다른 어떤 - - 당신은 기본적으로 프로세스의 모든 종류를 실행할 수 있도록 감독을 활용하여

는 Heroku가 당신이 원하는 그것을했다 단지로 Foreman이 읽고 실행하는 Procfile에서 시작하는 방법을 지정합니다.

포먼은 또한이 간단한 Procfile을 가져 와서 Upstart 및 Init과 같은 도구를 사용하여 프로덕션 환경으로 내보낼 수 있습니다. 디버깅 기능을 제공하지는 않습니다.

12

그냥 또한, 당신의 Procfile는 다음과 같이 수 :

web: node web.js 
webDebug: node --debug-brk=5858 web.js` 

그래서 그냥 foreman start webDebug 전화 디버깅을 시작하기 위해, 당신은 당신이 원하는 그러나 구성을 호출 할 수 있습니다.

디버거는 포트 5858에서 수신 대기하므로 http://localhost:5000 대신 http://localhost:5100에서 앱을 호출해야합니다.

+0

나는 이것이 옳은 대답이라고 생각합니다. – radiodario

+0

@Irina 다음 줄을 설명해 주시겠습니까? "디버거는 포트 5858에서 수신 대기하고 http : // localhost : 5000 대신 http : // localhost : 5100에서 앱을 호출해야합니다." Thnx – WitVault

+1

@WitVault 디버그 모드에서 앱을 실행 한 후에 포트를 전환 할 필요가 없습니다. 제대로 연결해야합니다 (예 : npm debug localhost : 5858'). – dmi3y

관련 문제