我在 Node 和 Express 方面相当有限的经验并没有帮助,但我在从终端窗口调试应用程序时遇到了麻烦。这是问题:
运行node debug app.js
返回:
< debugger listening on port 5858
connecting... ok
break in server.js:1
1 var express = require('express');
这是调试快速应用程序的正确方法吗?
只是以更明确的方式回应对 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()
您可以在入口点、服务器初始化或任何地方设置断点。
有一个流行的 GUI 调试器(利用 WebKit,即 Chrome、Safari..)。
就个人而言,我更喜欢结合使用节点检查器和老式console.log
语句来找出发生了什么。(我认为 node-inspector 提到的 v8-profiler 不适用于 Node 0.6.x,但老实说我没有尝试过。)
如果其他人有一个维护得更好的工具来调试 Node.js 应用程序,我也很想知道它,但这是我所知道的最好的。