捕获异常:绑定EADDRINUSE,但找不到使用该端口的进程。
创始人
2024-12-25 08:00:28
0

在 Node.js 中,当尝试监听一个已经被占用的端口时,会抛出 EADDRINUSE 错误。下面给出一个处理该异常的代码示例:

const http = require('http');

const port = 3000;
const server = http.createServer();

server.on('error', (error) => {
  if (error.code === 'EADDRINUSE') {
    console.log(`Port ${port} is already in use.`);
    // 可以在此处编写你的处理逻辑
  } else {
    console.error('An unexpected error occurred:', error);
  }
});

server.listen(port, () => {
  console.log(`Server is listening on port ${port}`);
});

在上述代码中,我们创建了一个 HTTP 服务器,并通过 server.listen(port) 方法来监听指定的端口。如果端口已经被占用,则会触发 error 事件,并将错误对象作为参数传递给回调函数。在回调函数中,我们可以通过判断错误对象的 code 属性是否为 'EADDRINUSE' 来确定是否是端口被占用导致的异常。如果是,则可以根据需要编写相应的处理逻辑。

例如,我们可以尝试使用其他可用的端口:

server.on('error', (error) => {
  if (error.code === 'EADDRINUSE') {
    console.log(`Port ${port} is already in use. Trying a different port...`);

    // 尝试使用其他可用的端口
    server.listen(0, () => {
      const actualPort = server.address().port;
      console.log(`Server is now listening on port ${actualPort}`);
    });
  } else {
    console.error('An unexpected error occurred:', error);
  }
});

在上述代码中,我们通过传递 0 作为端口号给 server.listen() 方法,使服务器在可用的端口上监听。通过 server.address().port 可以获取实际被监听的端口号。

总结来说,捕获异常并处理 EADDRINUSE 错误的步骤如下:

  1. 使用 server.on('error', callback) 来监听错误事件。
  2. 在回调函数中,判断错误对象的 code 属性是否为 'EADDRINUSE'
  3. 根据需要编写处理逻辑,如尝试使用其他可用的端口。

相关内容

热门资讯

透视挂透视!wepoker透视... 透视挂透视!wepoker透视器免费,wepoker透视破解版(透视)揭秘教程(有挂详情);1、下载...
透视实锤!wepoker怎么设... 透视实锤!wepoker怎么设置房间,we-poker是什么软件(透视)靠谱教程(有挂详情);wep...
透视免费!wepoker私人局... 透视免费!wepoker私人局辅助挂,we-poker辅助软件教程(透视)透明挂教程(有挂解密)1、...
透视系统!wepoker私人定... 透视系统!wepoker私人定制透视,wepoker安装教程(透视)新版2025教程(有挂攻略)1、...
透视苹果版!wepoker有透... 透视苹果版!wepoker有透视吗,wepoker底牌透视(透视)可靠教程(有挂细节)1、wepok...
透视最新!wepoker手机插... 透视最新!wepoker手机插件,wepoker俱乐部辅助器(透视)分享教程(有挂揭秘)1、游戏颠覆...
透视透视挂!wepoker辅助... 透视透视挂!wepoker辅助器安装包,wepoker亲友圈有用吗(透视)安装教程(有挂插件)wep...
透视ai!wepoker俱乐部... 透视ai!wepoker俱乐部辅助,wepoker有什么规律(透视)分享教程(有挂辅助)1、超多福利...
透视智能ai!wepoker私... 透视智能ai!wepoker私人局透视方法,wepoker透视苹果系统(透视)曝光教程(有挂规律)1...
透视肯定!wepoker怎么提... 透视肯定!wepoker怎么提高运气,wepoker辅助透视(透视)AI教程(有挂插件);1、wep...