求教Nodejs node-inspector问题

求教Nodejs node-inspector问题

求教node-inspector问题,感觉网上的教程太简单了,现在不知道怎么搞

例如我想调试下nodejs程序,首先node --debug app.js 然后换个终端输入node-inspector 最后我想启动自己的nodejs工程,换个终端输入node app.js时总是报错

events.js:72 throw er; // Unhandled ‘error’ event ^ Error: listen EADDRINUSE at errnoException (net.js:901:11) at Server._listen2 (net.js:1039:14) at listen (net.js:1061:10) at Server.listen (net.js:1135:5) at Object.start (/home/wh/Documents/5.07/server.js:16:5) at Object.<anonymous> (/home/wh/Documents/5.07/index.js:9:8) at Module._compile (module.js:456:26) at Object.Module._extensions…js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12)

求教怎么搞啊


9 回复

求教Nodejs node-inspector问题

问题描述

你遇到了一个关于使用 node-inspector 调试 Node.js 应用时遇到的错误。具体来说,在尝试启动你的应用时,出现了 EADDRINUSE 错误,这表示你尝试绑定的端口已经被其他进程占用。

解决方案

  1. 检查端口占用情况: 首先,你需要确定哪个进程占用了你试图绑定的端口。你可以使用以下命令来查看:

    lsof -i :端口号
    

    或者在 Windows 上使用:

    netstat -ano | findstr :端口号
    
  2. 停止占用端口的进程: 找到占用端口的进程后,你可以选择结束该进程。在 Linux/MacOS 上,可以使用:

    kill -9 PID
    

    在 Windows 上,可以使用:

    taskkill /PID 进程ID /F
    
  3. 更改应用绑定的端口: 如果你不想终止占用端口的进程,可以考虑更改你的 Node.js 应用绑定的端口。修改你的应用代码中绑定端口的地方即可。例如:

    const http = require('http');
    
    const PORT = 3000; // 更改为你未被占用的端口
    
    const server = http.createServer((req, res) => {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.end('Hello World\n');
    });
    
    server.listen(PORT, () => {
      console.log(`Server running at http://localhost:${PORT}/`);
    });
    
  4. 正确使用 node-inspector: 确保你在使用 node-inspector 时没有遗漏任何步骤。通常,你只需要执行以下命令:

    # 启动调试器
    node --inspect app.js
    
    # 在另一个终端窗口中启动 node-inspector
    npx node-inspector
    

    然后在浏览器中打开 http://localhost:8080/debug?port=5858 来访问调试界面。

通过以上步骤,你应该能够解决 EADDRINUSE 错误,并成功使用 node-inspector 进行调试。如果还有其他问题,请继续提问!


你确定你的node-inspector安装正确了嘛?

安装正确之后启动可以先启动项目:node --debug app.js 然后启动调试:node-inspector --web-port={43222}这个端口是随便起的

看了你的回复突然就懂了……3q3q

我想说在ubuntu下面比较难搞,我现在还在纠结中,求助

首先启动得要–debug参数的 然后调试端口默认好像是5858…然后还得起一个node-inspector 默认端口好像是8080 然后浏览器localhost:8080/然后后面一大堆东西我也记不住了 就是起node-inspector时候下面给的地址 然后就ok了

新版本的要自定义端口了

c++环境没问题才能变异成功~

从你的描述来看,问题出在EADDRINUSE错误上。这个错误表示你尝试绑定的端口已经被其他进程占用。以下是一些解决方法:

解决方法

  1. 查找并终止占用端口的进程

    首先你需要找到是哪个进程占用了指定的端口,假设是端口 3000,你可以使用以下命令:

    • 在 Linux 或 macOS 上:

      lsof -i :3000
      

      或者

      netstat -tuln | grep 3000
      
    • 在 Windows 上:

      netstat -ano | findstr :3000
      

    找到占用端口的 PID 后,可以使用以下命令结束该进程:

    • 在 Linux 或 macOS 上:

      kill -9 <PID>
      
    • 在 Windows 上:

      taskkill /F /PID <PID>
      
  2. 更改监听端口

    如果你不方便终止占用端口的进程,可以考虑更改你的 Node.js 应用程序中监听的端口号。在你的代码中修改端口设置,比如将:

    const server = http.createServer(app).listen(3000);
    

    修改为:

    const server = http.createServer(app).listen(3001);
    
  3. 使用 node-inspector 调试

    确保你在正确地使用 node-inspector 进行调试。基本步骤如下:

    • 安装 node-inspector(如果尚未安装):

      npm install -g node-inspector
      
    • 使用调试模式启动你的应用程序:

      node --debug-brk app.js
      
    • 在另一个终端窗口启动 node-inspector

      node-inspector
      
    • 使用浏览器打开 http://localhost:8080/debug?port=5858,开始调试。

通过以上方法,你应该能够解决 EADDRINUSE 错误,并顺利使用 node-inspector 进行调试。

回到顶部