节点–debug-brk app.js不能正常工作

我试图debugging我的应用程序,但是当我使用–debug-brk标志时,某些事情正在停止应用程序的启动。

这是我的输出通常:

/usr/local/bin/node app.js Express server listening on port 3000 Connected to database HackRegDb 

下面是当我运行–debug-brk(在代码中的一个断点处,在初始启动时不会被命中)时发生的情况,

 /usr/local/bin/node --debug-brk=59763 app.js debugger listening on port 59763 

看,没有“服务器收听”部分。 代码显然是一样的,而且在吐出之前没有断点。

作为参考,这里是我的app.js文件:

 var express = require('express') , routes = require('./routes') , members = require('./routes/members') , teams = require('./routes/teams') , http = require('http') , path = require('path'); var app = express(); // all environments app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.session()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); // development only if ('development' == app.get('env')) { app.use(express.errorHandler()); } app.get('/', routes.index); app.get('/members', members.list); app.get('/teams', teams.list); app.post('/members', members.add); app.post('/teams', teams.add); app.put('/members/:id', members.update); app.put('/teams/:id', teams.update); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 

我错过了什么吗?

--debug-brk=在第一行停止节点程序,这意味着它将在启动服务器之前中断。 然后,您可以连接您的debugging器,然后按继续运行该程序。

您可以使用--debug=来启动debugging器,但不能在开始时中断。 因此,如果在asynchronous代码中有某个debugger行,则在debugging器连接时它仍然会中断。

奇怪,但这是帮助我的。

我运行相同的命令行,但没有-brk

 /usr/local/bin/node --debug=59763 app.js 

该应用程序成功完成。 然后--debug-brk的后续运行很好。

 /usr/local/bin/node --debug-brk=59763 app.js 

在jetbrains PhpStorm,

启动节点应用程序后,在左下方的debugging工具附近。 有一个闪电(例外切换)。

对我来说,取消select那个解决了我的问题的选项。

感谢所有的答案。 这个问题似乎已经通过JetBrains的许多更新之一解决了。 我现在能够正确debugging,没有问题。