【问题标题】:how do i debug a node.js app using heroku foreman?如何使用 heroku foreman 调试 node.js 应用程序?
【发布时间】:2015-03-16 15:52:52
【问题描述】:

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

我看到 node.js 以及 node-inspector 项目都有一个 Eclipse 调试器。但我似乎无法与 FORMAN 一起完成这些工作。

foreman start

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

【问题讨论】:

    标签: debugging node.js heroku


    【解决方案1】:

    只是一个补充,你的 Procfile 可能看起来像这样:

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

    所以要开始调试,您只需调用foreman start webDebug,您可以随意调用配置。

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

    【讨论】:

    • @Irina 您能否解释以下几行“调试器将侦听端口 5858,您必须从 localhost:5100 而不是 localhost:5000 调用您的应用程序。”谢谢
    • @WitVault 你不需要切换端口,只要确保正确连接,就像默认npm debug localhost:5858 在调试模式下启动应用程序后一样。
    【解决方案2】:

    Foreman 的目的是让您轻松运行可能由多个进程组成的复杂应用程序。查看author's blog post on Foreman

    最近我注意到我的网络应用程序运行起来变得越来越复杂。我的 应用程序不再由单个 Web 进程组成;我通常有 一种或多种类型的后台工作人员来运行不同类型的工作 和一个时钟进程来处理调度。在此拆分应用程序 方式非常适合性能和可扩展性。然而,不利的一面是, 是获取应用程序及其所有内容变得更加复杂 零件正在运行。

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

    通过利用 Foreman,Heroku 使您可以运行任何类型的进程(Rails 应用程序、Sinatra 应用程序、Node.js 应用程序或其他任何应用程序),只需指定如何在您的 Procfile 中启动它,Foreman 会读取并执行它。

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

    【讨论】:

      猜你喜欢
      • 2013-10-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2016-11-28
      • 2014-10-19
      • 1970-01-01
      • 2018-10-18
      • 2017-07-29
      相关资源
      最近更新 更多