Nodejs express框架写的app,如何使用node-inspector进行调试

Nodejs express框架写的app,如何使用node-inspector进行调试

1.浏览器打开http://127.0.0.1:8080/debug?port=5858后 .js文件不能显示javascript代码 2.此时右侧几个调试按钮可以点击,如step over next function call(F10) 若F10,控制台报错是“Debugger.stepOver failed. ErrorNotConnected: node-inspector server was restarted” 页面提示“Detached from the target" 运行node --debug-brk=5858 debug.js的命令行窗口提示:Error 0

另外,测试了几个基于express的工程都出现以上相同问题,测试无框架的工程良好

大家有没有遇到过类似问题?还请指教啊,好棘手


4 回复

要使用 node-inspector 对 Node.js 应用程序(尤其是使用 Express 框架编写的)进行调试,我们需要确保配置正确,并且环境设置得当。根据你描述的问题,这里提供一个更详细的解决方案。

1. 安装 node-inspector

首先,你需要安装 node-inspector。你可以通过 npm 来安装它:

npm install -g node-inspector

2. 启动应用并启用调试模式

为了启动你的 Express 应用程序并让它进入调试模式,你需要在启动时指定调试端口。例如,如果你的应用程序入口文件名为 app.js,你可以这样启动它:

node --inspect-brk=9229 app.js

这里,--inspect-brk 参数会让 Node.js 在第一个断点处暂停,而 9229 是调试器监听的端口号。

3. 使用 node-inspector 启动调试界面

接着,你需要打开一个新的终端窗口,然后启动 node-inspector

node-inspector

这将启动一个 Web 服务器,通常默认监听 8080 端口。你可以通过访问 http://localhost:8080 来查看调试界面。

4. 调试界面中的操作

一旦你进入了调试界面,你应该能够看到你的源代码,并可以设置断点、单步执行等。如果在尝试点击“Step Over”等调试按钮时遇到“NotConnected”错误,可能是因为 Node.js 进程已经退出或没有正确连接到调试器。

5. 解决常见问题

  • 确保 Node.js 版本兼容node-inspector 可能与某些版本的 Node.js 不完全兼容。确保你使用的是一个支持的版本。
  • 检查应用启动命令:确保你的应用程序在启动时没有立即崩溃。可以在启动时添加一些日志输出来验证这一点。
  • 更新 node-inspector:如果可能的话,尝试更新 node-inspector 到最新版本。

通过这些步骤,你应该能够成功地使用 node-inspector 对基于 Express 的 Node.js 应用程序进行调试。如果问题仍然存在,建议检查是否有其他配置或依赖项导致了问题。


没有人遇到相同问题么?

你的问题解决了嘛?同样的问题,就解决方案

对于使用 node-inspector 进行调试 Express 框架编写的 Node.js 应用程序时遇到的问题,可以尝试以下方法解决:

1. 安装和启动 node-inspector

首先,确保已经安装了 node-inspector。如果还没有安装,可以通过 npm 安装它:

npm install -g node-inspector

然后,在你的项目目录中启动你的应用,并开启调试模式:

node --inspect-brk=9229 app.js

注意:--inspect-brk 是较新的 Node.js 版本中使用的参数,用于在启动时暂停执行。

2. 启动 node-inspector

在另一个终端窗口中,启动 node-inspector:

node-inspector

或者如果你安装了最新版本的 node-inspector,可能需要使用:

node_modules/.bin/node-inspector

3. 使用 Chrome 调试

打开浏览器访问 http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=9229(注意端口号应与你的应用设置一致)。

这样你应该能够看到你的源代码,并且可以正常地进行调试操作,如断点、单步执行等。

解决步骤过快问题

如果遇到调试步骤时跳过问题(如 ErrorNotConnected),请检查是否所有相关的调试服务都在正常运行,例如确认没有其他进程占用了指定的端口,以及你的代码逻辑是否正确。

希望这些建议对你有所帮助!如果问题仍然存在,请提供更多详细信息以便进一步诊断。

回到顶部