webpack (nodejs) Error: listen EADDRNOTAVAIL

Error: listen EADDRNOTAVAIL

 

 

 

单词解析

这个异常名字“EADDRNOTAVAIL”并不是一个单词,将其分解开来就是“E ADDR NOT AVAIL”,含义如下:

E:Error

ADDR:Address

NOT:Not

AVAIL:Available

合起来的意思就是这个ip地址是not available的,读者如果遇到这样子的错误就去看看自己的ip地址对不对。

 

问题原因

 

http.createServer().listen(port,hostname)中的hostname代表本机的域名或者ip

官网的API上说到

server.listen(port, [hostname], [backlog], [callback])#

Begin accepting connections on the specified port and hostname. If the hostname is omitted, 
the server will accept connections directed to any IPv4 address (INADDR_ANY).

 

 

可用 host 或 ip 配置

 配置不同host可访问路径区别

host 可访问路径 说明
localhost

localhost

127.0.0.1

localhost是在host文件中默认与127.0.0.1映射,代表本地因此两者之间可以互相访问
不联网 
不使用网卡,不受防火墙和网卡限制 
本机访问

127.0.0.1

localhost

127.0.0.1

不联网 
网卡传输,受防火墙和网卡限制 
本机访问
0.0.0.0

localhost

127.0.0.1

本机IP(如192.168.x.x)

0.0.0.0我们平时很少用到,可以通过主机的多个 ip 地址访问我的服务

我们也可以发现一件很有趣的事情:其他三种路径都可以访问,唯独使用0.0.0.0却访问不了

这是一个保留地址,具体原理暂不深究,但这种方式能让其他的默认地址都访问

     

 

解决

修改webpack host字段配置如下可解决问题

 

  

@萍2樱释ღ( ´・ᴗ・` )

posted @ 2020-09-29 11:27  不忘初心dbsdxq  阅读(2049)  评论(0编辑  收藏  举报
TOP 文章底部