Debugging 如何使用heroku foreman调试node.js应用程序?

Debugging 如何使用heroku foreman调试node.js应用程序?,debugging,node.js,heroku,Debugging,Node.js,Heroku,我不熟悉heroku和node.js。我有一个小的node.js应用程序,我可以使用heroku工具带中的FOREMAN在本地机器上启动并成功运行。不过,我不知道如何最好地调试应用程序 我看到node.js和node inspector项目都有一个eclipse调试器。但我似乎不能和FOREMAN一起工作 foreman start 如果无法调试foreman启动的应用程序,foreman的目的是什么?foreman的目的是让您能够轻松运行复杂的应用程序,这些应用程序可能包括多个进程。请查看:

我不熟悉heroku和node.js。我有一个小的node.js应用程序,我可以使用heroku工具带中的FOREMAN在本地机器上启动并成功运行。不过,我不知道如何最好地调试应用程序

我看到node.js和node inspector项目都有一个eclipse调试器。但我似乎不能和FOREMAN一起工作

foreman start

如果无法调试foreman启动的应用程序,foreman的目的是什么?

foreman的目的是让您能够轻松运行复杂的应用程序,这些应用程序可能包括多个进程。请查看:

最近我注意到我的网络应用程序运行起来越来越复杂。我的 应用程序不再由单个web进程组成;我通常有 一种或多种类型的后台工作人员来运行不同类型的作业 以及处理调度的时钟进程。在此模式下拆分应用程序 这种方式对于性能和可伸缩性来说是非常好的。但是,缺点是, 这是因为获取应用程序及其所有功能变得更加复杂 部件正在运行

Foreman试图让这更容易。使用foreman你可以 声明运行应用程序所需的各种进程 使用proc文件

通过利用Foreman,Heroku使您可以运行任何类型的流程——Rails应用程序、Sinatra应用程序、Node.js应用程序或其他任何程序——只需在Foreman读取和执行的
profile
中指定如何启动即可


Foreman还允许您获取这个简单的Procfile,并使用Upstart和Init等工具将其导出到生产环境中。它不提供任何调试功能(也不打算提供任何调试功能)。

只是一个补充,您的Procfile可能如下所示:

web: node web.js
webDebug: node --debug-brk=5858 web.js`
因此,要开始调试,只需调用
foreman start webDebug
,就可以根据需要调用配置


调试器将在端口5858上侦听,您必须从而不是从调用应用程序。

@Irina请您解释以下几行:“调试器将在端口5858上侦听,您必须从而不是从调用应用程序。”Thnx@WitVault您无需切换端口,只需确保正确连接,在调试模式下启动应用程序后,默认情况下与npm debug localhost:5858类似。