调试Node / Express --- require('express')创建一个中断

时间:2012-04-30 22:47:39

标签: debugging node.js express

我对Node和Express的相当有限的经验没有帮助,但我在终端窗口调试应用程序时遇到问题。这是问题所在:

运行node debug app.js会返回:

< debugger listening on port 5858
connecting... ok
break in server.js:1
    1 var express = require('express');

这是调试快递应用的正确方法吗?

3 个答案:

答案 0 :(得分:10)

有一个流行的GUI调试器(利用WebKit,即Chrome,Safari ..)。

你应该试一试https://github.com/dannycoates/node-inspector

答案 1 :(得分:10)

只需更加明确地回应对Node Inspector的调用。

$ sudo npm install -g node-inspector
$ node-debug app.js <arguments to your app>
debugger listening on port 5858
Node Inspector is now available from http://localhost:8080/debug?port=5858
Debugging `app.js`

现在进入(基于webkit的?)浏览器转到该地址 - 或者只要端口打开就可以正常工作。

enter image description here

现在,您可以完全访问所有服务器端变量(例如app对象),并将其暴露给客户端调试器。这很神奇。您可以在app.get()入口点或服务器初始化或任何位置设置断点。

答案 2 :(得分:2)

就个人而言,我更喜欢使用node-inspector与旧式console.log语句的组合来弄清楚发生了什么。 (我不认为node-inspector提到的v8-profiler与Node 0.6.x一起使用,但老实说我还没试过。)

如果其他人有更好的维护工具来调试Node.js应用程序,我也很想听到它,但这是我所知道的最好的。