【问题标题】:Debugging Node/Express RESTful API with node-inspector使用节点检查器调试 Node/Express RESTful API
【发布时间】:2015-09-22 01:33:48
【问题描述】:

我看到很多关于调试 Node/Express 应用程序的问题,但是,它似乎是一个节点 Web 应用程序,而不是一个 RESTful 服务器。

我已经构建了一个简单的服务器,当使用命令node server.js 启动服务器时它可以完美运行。我可以使用 Postman 或其他一些工具来调用 GET/POST 请求。

安装node-inspector 模块后,当我使用命令node-debug server.js 启动节点检查器调试时,它会在http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858 处显示一个带有检查器窗口的网页。

然后,我使用邮递员再次调用请求(之前已成功调用),但它显示404 errorCannot GET /api/v1/user/login

如何向调试服务器发出请求?

【问题讨论】:

  • 这可能是因为当您启动调试器时,server.js 的执行已暂停,REST 服务器并未真正启动并运行。尝试恢复执行(暂停或播放按钮)并设置断点。
  • 不行,我已经恢复执行了。
  • 您使用哪个版本的 NI? (0.11.0发布网络调试。假设这会导致一些问题。你可以试试0.10.*吗?)

标签: node.js rest debugging express node-inspector


【解决方案1】:

试试nodedev

1) 安装nodedev:

sudo npm install -g nodedev

2) 启动你的服务器:

nodedev server.js

3) 访问页面http://127.0.0.1:7001/debug?port=7000进行调试...

4) ...

5) 利润!

奖励:当检测到更改时,您的服务器将自动重启!

【讨论】:

    【解决方案2】:

    使用 node-inspector 而不是 node-debug (在同一个模块中) 在一个终端执行: node-inspector 在另一个终端执行 node --debug server.js

    【讨论】:

      【解决方案3】:

      这是我的解决方案:不要直接使用 node-debug *.js。相反,在您的项目中打开两个终端。例如,我想调试 server-3.js,如下图所示。一个终端使用node-inspector调试监听,另一个使用node --debug server-3.js

      在邮递员上发送请求后:

      您可以在侦听端口 5858 的节点检查器窗口中查看您的调试情况:

      我相信这就是您想要实现的目标。

      最新的更新是你也可以求助于vscode,里面有一个叫“Debugger for Chrome”的插件,里面有你想要的调试功能。

      【讨论】:

        【解决方案4】:

        请注意,不推荐使用 --debug 选项。 --inspect 是首选。否则你会得到一个警告/错误。

        (node:11524) [DEP0062] DeprecationWarning: node --debugnode --debug-brk 无效。请改用node --inspectnode --inspect-brk

        【讨论】:

          猜你喜欢
          • 2014-04-04
          • 2014-10-28
          • 1970-01-01
          • 1970-01-01
          • 2015-06-18
          • 1970-01-01
          • 2014-09-28
          • 2015-07-16
          • 1970-01-01
          相关资源
          最近更新 更多