运行Node.js服务器时遭遇listen EADDRNOTAVAIL未处理错误求助
解决Node.js启动时的EADDRNOTAVAIL错误
嘿,别担心,刚接触Node.js遇到这种网络绑定问题太正常了,我来帮你快速搞定这个报错!
错误原因解析
你看到的Error: listen EADDRNOTAVAIL 18.194.133.202:3001,核心问题是:你代码里指定要绑定的IP地址18.194.133.202并不是当前机器(你的Mac)上可用的网络接口地址,Node.js服务器没办法在一个不属于本机的IP上监听请求。
具体解决方案
根据你的使用场景,选下面的方法就行:
开发调试首选:绑定本地地址或默认所有接口
如果你只是在本地开发测试,完全不需要指定那个公网IP。修改你server.js里的监听代码:// 方案1:绑定本地回环地址(只能本机访问) server.listen(3001, 'localhost', () => { console.log('服务器在localhost:3001启动'); }); // 方案2:不指定IP,默认绑定所有可用接口(同一局域网内设备也能访问) server.listen(3001, () => { console.log('服务器在3001端口启动'); });改完后再执行
node server,应该就能正常启动了。如果确实需要绑定特定公网IP
先确认这个18.194.133.202是不是你的Mac实际分配到的公网IP。你可以在终端执行ifconfig(macOS),查看所有网络接口的IP信息,找到当前正在使用的网络(比如Wi-Fi对应的en0)的IP地址,替换到代码里。额外排查:确认端口是否被占用
虽然这个报错主要是IP的问题,但也可以顺便检查下3001端口有没有被其他程序占用:
在终端执行:lsof -i :3001如果有输出,说明端口被占用,要么杀掉对应进程,要么换个端口号(比如3002)。
内容的提问来源于stack exchange,提问作者Vladimir Dima
相关产品推荐
相关产品推荐

