10

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

运行node debug app.js返回:

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

这是调试快速应用程序的正确方法吗?

4

3 回答 3

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 的?)浏览器中转到该地址 - 或者它在远程也可以正常工作,只要端口是打开的。

在此处输入图像描述

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

于 2014-04-17T02:01:42.953 回答
10

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

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

于 2012-04-30T22:56:16.787 回答
2

就个人而言,我更喜欢结合使用节点检查器和老式console.log语句来找出发生了什么。(我认为 node-inspector 提到的 v8-profiler 不适用于 Node 0.6.x,但老实说我没有尝试过。)

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

于 2012-04-30T22:57:00.540 回答