Geddy没有破坏点

时间:2012-03-06 16:20:38

标签: node.js debugging intellij-idea webstorm geddy

我正在评估node.js的Geddy MVC框架,我看到一个奇怪的问题 - 调试时没有遇到任何断点。

我正在使用WebStorm在调试模式下启动node.js

我不知道如何使用CLI命令让Geddy在调试模式下启动,所以我使用的bootstrapper文件如下所示:

console.log("Starting server...")
var geddy = require("geddy/bin/cli")
console.log("Server started.")

我在所有三行上都设置了一个断点,只有最后一个console.log被命中,所以至少我知道断点和调试工作正常。

Geddy内部require()是我的控制员,他们也在多个地点设置了断点。这些永远不会受到影响,但控制器可以正常工作,并且HTTP请求也可以正常提供。

有没有理由为什么断点不会被Geddy击中?还有什么我可以做的吗?

4 个答案:

答案 0 :(得分:3)

有一个Debugging WikiPage,其中包含有关如何调试geddy的一些信息。

答案 1 :(得分:1)

我无法验证这一点,但我认为问题是由于cluster产生新进程但调试器不知道它们。我还没有找到一种方法将调试器连接到新进程,我甚至不确定它们是否可以在打开调试端口的情况下启动。

Geddy使用cluster因此它继承了这个问题。

该主题提到了一个可能的解决方案: (How do I enable --debug for node.js when running GeddyJS)但这对我没有帮助。

答案 2 :(得分:1)

Geddy目前不支持调试,但我们希望将其添加为功能。

答案 3 :(得分:1)

专门回答Jetbrains WebStorm或IntelliJ(带有Node.js插件)调试的问题:

简而言之,将您的应用设置为就像要在Heroku或Nodejitsu上部署一样。

<强>的package.json

{
  "name": "geddy_todo",
  "version": "0.0.1",
  "dependencies": {
    "geddy": "0.6.x"
  },
  "engines": {
    "node": "0.8.x",
    "npm": "1.1.x"
  }
}

接下来你有两个选择

选项1。创建一个运行geddy的app.js.

<强> app.js

var geddy = require('geddy');

geddy.start({
  environment: process.env.GEDDY_ENVIRONMENT || 'production'
});

在WebStorm / IntelliJ中,在Node.js应用程序的运行/调试配置中,确保添加环境变量GEDDY_ENVIRONMENT并将其设置为“development”或“test”(如果要运行测试)。

选项2 直接调用geddy客户端

@MiguelMadero在评论中提到了这个想法。设置WS / IJ以运行以下

path/to/geddy/bin/cli.js