我对Node和Express的相当有限的经验没有帮助,但我在终端窗口调试应用程序时遇到问题。这是问题所在:
运行node debug app.js
会返回:
< debugger listening on port 5858
connecting... ok
break in server.js:1
1 var express = require('express');
这是调试快递应用的正确方法吗?
答案 0 :(得分:10)
有一个流行的GUI调试器(利用WebKit,即Chrome,Safari ..)。
答案 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的?)浏览器转到该地址 - 或者只要端口打开就可以正常工作。
现在,您可以完全访问所有服务器端变量(例如app
对象),并将其暴露给客户端调试器。这很神奇。您可以在app.get()
入口点或服务器初始化或任何位置设置断点。
答案 2 :(得分:2)
就个人而言,我更喜欢使用node-inspector与旧式console.log
语句的组合来弄清楚发生了什么。 (我不认为node-inspector提到的v8-profiler与Node 0.6.x一起使用,但老实说我还没试过。)
如果其他人有更好的维护工具来调试Node.js应用程序,我也很想听到它,但这是我所知道的最好的。