我是heroku和node.js的新用户。我有一个小node.js应用程序,我可以使用来自heroku工具带的FOREMAN在我的本地计算机上成功启动和运行。但我不明白如何最好地调试应用程序。
我看到node.js和node-inspector项目都有一个eclipse调试器。但我似乎无法使这些与FOREMAN合作。
foreman start
如果无法调试由工头启动的应用程序,那么工头的目的是什么?
答案 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等工具将其导出到生产环境。它不提供任何调试功能(也不是意味着)。