我如何使用heroku工头调试node.js应用程序?

时间:2012-05-20 22:48:58

标签: debugging node.js heroku

我是heroku和node.js的新用户。我有一个小node.js应用程序,我可以使用来自heroku工具带的FOREMAN在我的本地计算机上成功启动和运行。但我不明白如何最好地调试应用程序。

我看到node.js和node-inspector项目都有一个eclipse调试器。但我似乎无法使这些与FOREMAN合作。

foreman start

如果无法调试由工头启动的应用程序,那么工头的目的是什么?

2 个答案:

答案 0 :(得分:12)

另外,您的Procfile可能如下所示:

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

因此,要开始调试,只需拨打foreman start webDebug,即可根据需要调用配置。

调试器将侦听端口5858,您必须从http://localhost:5100而不是http://localhost:5000调用您的应用。

答案 1 :(得分:0)

Foreman的目的是允许您轻松地运行复杂的应用程序,这些应用程序可能包含多个进程。查看author's blog post on Foreman

  

最近我注意到我的网络应用程序运行起来很复杂。我的   应用不再包含单个网络流程;我通常都有   一种或多种类型的后台工作者来运行不同类型的工作   以及处理调度的时钟进程。在此分割应用程序   方式非常适合性能和可扩展性。然而,缺点是,   是这样,获得应用程序及其所有内容变得更加复杂   零件运行。

     

Foreman试图让这更容易。你可以使用工头   声明运行应用程序所需的各种进程   使用Procfile。

通过利用Foreman,Heroku已经做到了这一点,你可以基本上运行你想要的任何类型的进程--Rails应用程序,Sinatra应用程序,Node.js应用程序或其他任何东西 - 只需指定如何在你的Procfile开始,Foreman读取并执行。

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